我想在C#中舍入十进制值。例如,当十进制值<或等于.5时,应采用原始值→例如344.5舍入为344,如果更大,则将其向上取1值→例如344.51变为345。这非常简单,但我注意到Math.Round / Decimal.Round有问题。
下面是我使用的代码,我注意到当小数为.5时,c Sharp为某些数字加1,而对于另一些数字,它将忽略它。
decimal x;
x = 1.5M;
for (int i = 0; i < 200; i++)
{
Console.WriteLine($"{x} becomes {decimal.Round(x)}");
x = x + 1;
}
Console.Read();
输出:
有人知道我总是可以得到期望的结果吗:如果小数位数小于或等于0.5,则取基数;如果十进制数大于.5,则仅加1。