我想在c#中四舍五入小数点后两位的双值,我怎么能做到呢?
double inputValue = 48.485;
舍入后
inputValue = 48.49;
使用数学。轮
value = Math.Round(48.485, 2);
如此:
inputValue = Math.Round(inputValue, 2);
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
你应该使用
inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
数学。圆形的< / >
< p >数学。将双精度浮点值舍入为a .指定小数位数
midpointround .
指定数学舍入方法处理数字的方式
基本上,上面的函数会取你的输入值并四舍五入到小数点后2位(或任何你指定的数字)。对于MidpointRounding.AwayFromZero,当一个数字位于另外两个数字的中间时,它会四舍五入到离0最近的数。。还有另一个选项,你可以使用它四舍五入到最接近的偶数。
MidpointRounding.AwayFromZero
你可以从下面试试。这有很多方法。
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
float d = 54.9700F; string s = d.ToString("N2"); Console.WriteLine(s);
结果:
54.97
使用插值字符串,这将生成一个四舍五入的字符串:
var strlen = 6; $"{48.485:F2}"
输出
"48.49"
我认为所有这些答案都忽略了问题。问题是“四舍五入”,而不仅仅是“四舍五入”。我的理解是四舍五入是指一个整位数的任何小数四舍五入到下一个整位数。例如:48.0000000 = 48,但25.00001 = 26。这不是围捕的定义吗?(还是说,我过去60年的会计生涯错放了地方?