我有以下问题。当我尝试从“双精度”类型四舍五入一个数字时,它没有按我期望的那样工作。
考虑以下代码:
double d = 0.00498;
Console.WriteLine(Math.Round(d, 2)); // prints 0
我得到的结果是错误的。
该程序必须打印0.01,并且我已经尝试了所有操作,但没有任何正常工作。
答案 0 :(得分:3)
我认为您需要第二次迭代才能获得所需的结果
double d = 0.00498;
double result1 = Math.Round(d, 3, MidpointRounding.AwayFromZero);
double result2 = Math.Round(result1 , 2, MidpointRounding.AwayFromZero);
Console.WriteLine(result2);
因为0.00498
的结果是0.005
而不是0.01
答案 1 :(得分:0)
您希望将数字四舍五入为两位小数点。
Math.Ceiling(d * 100) / 100
答案 2 :(得分:0)