我想用数学来做。圆的函数


当前回答

就我个人而言,我从来没有四舍五入过。让它尽可能坚定,因为舍入在CS中是一个转移注意力的东西。但您确实希望为用户格式化数据,为此,我发现string.Format("{0:0.00}", number)是一种很好的方法。

其他回答

你可能需要检查的一件事是数学的舍入机制。轮:

http://msdn.microsoft.com/en-us/library/system.midpointrounding.aspx

除此之外,我推荐数学。Round(inputnumber, numberOfPlaces)接近*100/100,因为它更干净。

就我个人而言,我从来没有四舍五入过。让它尽可能坚定,因为舍入在CS中是一个转移注意力的东西。但您确实希望为用户格式化数据,为此,我发现string.Format("{0:0.00}", number)是一种很好的方法。

  public double RoundDown(double number, int decimalPlaces)
        {
            return Math.Floor(number * Math.Pow(10, decimalPlaces)) / Math.Pow(10, decimalPlaces);
        }

如果你想要一根绳子

> (1.7289).ToString("#.##")
"1.73"

或者小数

> Math.Round((Decimal)x, 2)
1.73m

但请记住!舍入不是分配的。圆(x*y) !=圆(x) *圆(y)。所以在计算结束之前不要做任何舍入运算,否则会失去精度。

您应该能够使用Math指定要舍入的位数。轮(YourNumber, 2)

你可以在这里阅读更多。