我怎样才能防止舍入小数?

时间:2010-07-02 17:22:30

标签: c# .net

我正在使用c#,每次插入3个小数位时,数字都会被舍入,例如。

1.538

到1.54

我希望这个数字是例如1.53(只有两位小数,没有任何舍入)。

我该怎么做?

2 个答案:

答案 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);
}