C#中的小数点后两位小数?

时间:2010-03-01 17:51:32

标签: c# double rounding

我想在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)

8 个答案:

答案 0 :(得分:408)

这有效:

inputValue = Math.Round(inputValue, 2);

答案 1 :(得分:92)

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

答案 2 :(得分:24)

你应该使用

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

Math.Round

  

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

MidpointRounding

  

指定数学舍入方法应如何处理数字   这是两个数字之间的中间。

基本上上面的函数将把你的inputvalue和它四舍五入到2(或你指定的数字)小数位。当MidpointRounding.AwayFromZero数字位于另外两个数字的中间时,它会向最接近零的数字四舍五入。还可以使用另一个选项向使用该数字。最近的偶数。

答案 3 :(得分:18)

使用Math.Round

value = Math.Round(48.485, 2);

答案 4 :(得分:15)

另一种简单的方法是使用带参数的ToString。 例如:

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

结果:

54.97

答案 5 :(得分:7)

你可以从下面尝试一下。这有很多方法。

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

答案 6 :(得分:2)

使用插值字符串,这会生成一个四舍五入的字符串:

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

输出

"48.49"

答案 7 :(得分:0)

我认为所有这些答案都遗漏了这个问题。问题出在“ Round UP”上,而不仅仅是“ Round”。据我了解,向上舍入意味着任何整数位的小数都将舍入到下一个整位数。即:48.0000000 = 48但25.00001 =26。这不是舍入的定义吗? (或者我过去60年的会计工作放错了位置?