我正在使用c#,每次插入3个小数位时,数字都会被舍入,例如。
1.538
轮
到1.54
我希望这个数字是例如1.53(只有两位小数,没有任何舍入)。
我该怎么做?
答案 0 :(得分:6)
我相信你想使用Math.Truncate()
float number = 1.538
number = Math.Truncate(number * 100) / 100;
Truncate将丢掉结束位。但是,请记住要小心负数。
这取决于你是否总是希望向0舍入,或者只是在结束时,Math.Floor
将始终向下舍入负无穷大。这两者之间是a post on the difference。
答案 1 :(得分:3)
找到了this链接,它提供了一个很好的代码段,允许您指定MathHound()允许的小数位数。
基本上是这样的: -
public static double Floor(this double d, int decimals) {
return Math.Floor(d * Math.Pow(10, decimals)) / Math.Pow(10, decimals);
}