有人可以告诉我下面这段代码出了什么问题吗? 它返回0.14而不是0.15
Math.Round(0.145, 2, MidpointRounding.AwayFromZero)
答案 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
所以你只需要将变量声明为十进制。