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

double inputValue = 48.485;

舍入后

inputValue = 48.49;

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


当前回答

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

其他回答

使用数学。轮

value = Math.Round(48.485, 2);

如此:

inputValue = Math.Round(inputValue, 2);

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

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

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

结果:

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