C#中的舍入小数

时间:2019-02-20 06:26:47

标签: c# decimal rounding

我想在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();

输出:

Output

有人知道我总是可以得到期望的结果吗:如果小数位数小于或等于0.5,则取基数;如果十进制数大于.5,则仅加1。

0 个答案:

没有答案