使用计时系统,很多小时的结果看起来像这样:
0.266666666666。
现在,我想将所有数字四舍五入为“下一个.5值”,以使0.2666666666变为0.5。
例子:
1.4 => Should become 1.5
1.45 => Should become 1.5
1.466666666 => Should become 1.5
1.0 => Should remain 1.0
1.6 => Should become 2.0
数字必须总是四舍五入。
对于在C#中实现这一目标的任何帮助,我将不胜感激!
我冒昧地假设负值是有效输入,并且期望的行为是始终从零开始舍入。在输入为负的情况下,所有其他有效答案将四舍五入为零。
该实现丑陋但有效且易于理解:
public static double Round(double d)
{
var absoluteValue = Math.Abs(d);
var integralPart = (long)absoluteValue;
var decimalPart = absoluteValue - integralPart;
var sign = Math.Sign(d);
double roundedNumber;
if (decimalPart > 0.5)
{
roundedNumber = integralPart + 1;
}
else if (decimalPart == 0)
{
roundedNumber = absoluteValue;
}
else
{
roundedNumber = integralPart + 0.5;
}
return sign * roundedNumber;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句