C#中的小数点后两位是否舍入?

问题描述 投票:241回答:7

我想在C#中将双精度值四舍五入到小数点后两位?

double inputValue = 48.485;

四舍五入后

inputValue = 48.49;

相关:c# - How do I round a decimal value to 2 decimal places (for output on a page)

c# double rounding
7个回答
448
投票

此作品:

inputValue = Math.Round(inputValue, 2);

99
投票
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

25
投票

您应该使用

inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

Math.Round

Math.Round将双精度浮点值舍入为指定的小数位数。

MidpointRounding

指定数学舍入方法应如何处理数字在两个数字之间。

基本上,上面的函数将您的输入值并四舍五入到2(或您指定的任何数字)小数位。对于MidpointRounding.AwayFromZero,当一个数字位于两个数字之间的中间位置时,会将其四舍五入到[[远离零的最近数。。还有另一种选择,您可以使用该值将四舍五入到[[最近的偶数。


22
投票
float d = 54.9700F; string s = d.ToString("N2"); Console.WriteLine(s);

结果:

54.97

18
投票
value = Math.Round(48.485, 2);

8
投票
1. value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46" 2. inputvalue=Math.Round(123.4567, 2) //"123.46" 3. String.Format("{0:0.00}", 123.4567); // "123.46" 4. string.Format("{0:F2}", 123.456789); //123.46 string.Format("{0:F3}", 123.456789); //123.457 string.Format("{0:F4}", 123.456789); //123.4568

0
投票
var strlen = 6; $"{48.485:F2}"

输出

"48.49"
© www.soinside.com 2019 - 2024. All rights reserved.