2009年2月17日星期二

dotNet1.1下的四舍五入方法

在dotNet1.1下的舍入方法是逢6进位的,但我们日常使用的四舍五入却是逢5进位的。网上可以找到很多解决四舍五入的方法,大多数都有丢失精度的问题。这里有段代码,可以实现无损的四舍五入。


public static double Round(double value, int digits)
{
    double d = value * Math.Pow(10, digits);
    return Math.Round(value + (.5 == d % Math.Floor(d) ? Math.Pow(.1, digits + 1) : 0), digits);
}

没有评论: