如何将十进制数四舍五入到指定的位数
本文关键字:十进制数 四舍五入 | 更新日期: 2023-09-27 17:53:49
我需要把一个数字四舍五入到小数点后4位。
这个答案没有帮助,因为方法:
public static decimal RoundUp(this decimal input, int places)
{
decimal multiplier = Convert.ToDecimal(Math.Pow(10, Convert.ToDouble(places)));
return Math.Ceiling(input * multiplier) / multiplier;
}
将把数字1.12333四舍五入到1.1234(如预期的那样),但是1.123304将四舍五入到1.1233,我也需要它是1.1234。
您发布的方法有效。最有可能的是,您正在使用不正确的数据类型,或者具有与您想象的不同的值。示例代码:
RoundUp(1.123304M, 4) // 1.1234
注意字面值后面的M
-这表示该数字为十进制字面值,而不是双精度。然而,无论我做什么,我都无法复制你的结果,所以你很可能只是没有你认为自己拥有的价值。把所有东西都变成小数,你就没事了。注意,对于较大的places
值,您可能需要创建自己的Math.Pow
函数-或者只是为您实际使用的值(例如,在您的示例中为10000)创建一个快速查找表。