将小数部分四舍五入到.5的最接近倍数

时间:2020-02-27 22:48:46

标签: c#

将数字的小数部分四舍五入到.5数字的最接近倍数的代码是什么?例如,我正在寻找类似这样的输出

输入=>输出
40.11 => 40.10
40.12 => 40.10
40.13 => 40.15
40.14 => 40.15
40.16 => 40.15
40.17 => 40.15
40.18 => 40.20
40.19 => 40.20

我的数字的小数部分最多两位小数。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

因此,如果要四舍五入到最接近的“一半”,则需要将数字加倍,四舍五入到小数点后一位,然后除以二:

Math.Round(num * 2, 1) /2

因此,您的示例数据:

Console.WriteLine(Math.Round(40.11 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.12 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.13 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.14 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.16 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.17 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.18 * 2, 1) / 2);
Console.WriteLine(Math.Round(40.19 * 2, 1) / 2);

返回此(未格式化):

40.1
40.1
40.15
40.15
40.15
40.15
40.2
40.2