我想在c#中四舍五入小数点后两位的双值,我怎么能做到呢?

double inputValue = 48.485;

舍入后

inputValue = 48.49;

相关:c# -如何将十进制值四舍五入到2位小数点后(用于页面上的输出)


当前回答

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

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

其他回答

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

我认为所有这些答案都忽略了问题。问题是“四舍五入”,而不仅仅是“四舍五入”。我的理解是四舍五入是指一个整位数的任何小数四舍五入到下一个整位数。例如:48.0000000 = 48,但25.00001 = 26。这不是围捕的定义吗?(还是说,我过去60年的会计生涯错放了地方?

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

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

你应该使用

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

数学。轮

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

MidpointRounding

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

基本上,上面的函数会取你的输入值并四舍五入到小数点后2位(或任何你指定的数字)。MidpointRounding。当一个数字位于另外两个数字的中间时,它会四舍五入到离0最近的数字。还有另一个选项,你可以使用四舍五入到最近的偶数。

如此:

inputValue = Math.Round(inputValue, 2);