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


当前回答

Math.Floor(123456.646 * 100) / 100 会返回123456.64吗

其他回答

我知道这是一个老问题,但请注意数学轮和字符串轮之间的以下区别:

decimal d1 = (decimal)1.125;
Math.Round(d1, 2).Dump();   // returns 1.12
d1.ToString("#.##").Dump(); // returns "1.13"

decimal d2 = (decimal)1.1251;
Math.Round(d2, 2).Dump();   // returns 1.13
d2.ToString("#.##").Dump(); // returns "1.13"

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

试试这个:

twoDec = Math.Round(val, 2)

字符串a = "10.65678";

decimal d = Math.Round(Convert.ToDouble(a.ToString()),2)

如果你想要一根绳子

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

或者小数

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

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