考虑下面的C#代码舍入的数:使用非标准规则
Decimal number = new decimal(8.0549);
Decimal rounded = Math.Round(number, 2);
Console.WriteLine("rounded value: {0}", rounded);
时会产生输出:8.05
Math.Round的algoritm只检查下一个数字超出作为参数的小数数。
我需要一个检查所有小数链的算法。在这种情况下,9应该轮4〜5这反过来将轮5至6,产生最终结果8.06
更多exemples:
8.0545 - > 8.06
8.0544 - > 8.05
有一些内置在该方法可以帮助我吗?
谢谢。
我屁股你知道你提出的舍入在数学上是不正确的吗?即8.0545比8.06接近8.05,所以四舍五入到8.06是不正确的四舍五入。 – 2010-10-31 16:38:20
只是好奇(因为你正在寻找的不是四舍五入的)......为什么? ;) – 2010-10-31 16:39:18
是的,我知道这不是数学上正确的。那是因为我称它为“非标准”。但它仍然是一个四舍五入的,不是? :)我也不同意这个规则。但是上级命令.. – 2010-10-31 16:45:35