我需要将数字四舍五入到小数点后4位。
This answer没有帮助,因为方法:
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。
答案 0 :(得分:1)
您发布的方法有效。最有可能的是,您使用的数据类型不正确,或者具有与您想象的不同的值。示例代码:
RoundUp(1.123304M, 4) // 1.1234
请注意文字后面的M
- 这表示数字为十进制文字,而不是两倍。但是,无论我做什么,我都无法复制你的结果,所以你很可能根本没有你认为的价值。保留所有小数,你就没事了。请注意,对于较大的places
值,您可能需要创建自己的Math.Pow
函数 - 或者只是为您实际使用的值创建快速查找表(例如,在您的示例中为10000)