我想用数学来做。圆的函数
当前回答
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)。所以在计算结束之前不要做任何舍入运算,否则会失去精度。