如何将十进制值舍入到最接近的0.05值?
有没有办法将十进制值四舍五入到.Net中最近的0.05值?
例如:
7.125 – > 7.15
6.66 – > 6.7
如果它现在可用,任何人都可以提供算法吗?
怎么样:
Math.Ceiling(myValue * 20) / 20
用这个:
Math.Round(mydecimal / 0.05m, 0) * 0.05m;
在T-SQL中可以使用相同的逻辑:
ROUND(@mydecimal / 0.05, 0) * 0.05
我更喜欢这种选择答案的方法,因为你可以直接看到所用的精度。
这样的东西应该适用于任何步骤,而不仅仅是0.05:
private decimal RoundUp (decimal value, decimal step) { var multiplicand = Math.Ceiling (value / step); return step * multiplicand; }
Math .. ::。Round Method(Decimal,Int32,MidpointRounding)
将双精度浮点值舍入到指定的小数位数。 参数指定如果值在两个其他数字之间的中间值,则如何舍入值。
Math.Round(1.489,2,MidpointRounding.AwayFromZero)
在这里和这里重复ruby和python。 它应该不会太不同。