我想在c#中将两位小数加倍,我怎么能这样做?
double inputValue = 48.485;
回合后
inputValue = 48.49;
答案 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将双精度浮点值舍入为a 指定的小数位数。
指定数学舍入方法应如何处理数字 这是两个数字之间的中间。
基本上上面的函数将把你的inputvalue和它四舍五入到2(或你指定的数字)小数位。当MidpointRounding.AwayFromZero
数字位于另外两个数字的中间时,它会向最接近零的数字四舍五入。还可以使用另一个选项向使用该数字。最近的偶数。
答案 3 :(得分:18)
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年的会计工作放错了位置?