Math.Round在AwayFromZero模式下失败

时间:2014-11-20 12:12:39

标签: c# asp.net

有人可以告诉我下面这段代码出了什么问题吗? 它返回0.14而不是0.15

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

1 个答案:

答案 0 :(得分:0)

如果小数很重要,请使用decimal数据类型。

有关于这个主题的书籍,读起来很重要。 但是短版是这个。

var a = Math.Round(0.145, 2, MidpointRounding.AwayFromZero);
//a == 0.14
var b = Math.Round(0.145m, 2, MidpointRounding.AwayFromZero);
//b == 0.15

所以你只需要将变量声明为十进制。