四舍五入到下一个更高的数字

本文关键字:数字 下一个 四舍五入 | 更新日期: 2023-09-27 18:11:04

我想将一个值(双精度(四舍五入到下一个(一直向上取整(数字。舍入可以由任何数字定义。

Exp.:
四舍五入到下一个2.50

0.00       --> 0.00
0.01       --> 2.50
2.49       --> 2.50
2.50       --> 2.50
2.50000001 --> 5.00
...

这样做的算法很容易(如果"数字"为负数*-1(:

Math.Round((Math.Abs(number) + tolerance) / 2.50, MidpointRounding.AwayFromZero) * 2.50

公差定义如下:

tolerance = 2.50 / 2 - Math.Pos(10, -x);

但是我不知道如何确定x!因为在第1-4个例子的情况下,x应该是0.01,在第5个例子的例子中,它应该是0.0000001,依此类推…

搜索结果只建议解析十进制数字的字符串并计算十进制数字。难道没有数学方法吗?否则,我必须为十进制分隔符和没有十进制数字的数字(没有要删除的十进制分隔符(处理不同的区域设置。

愿任何人都能解决我的问题。非常感谢。

问候,Danny

四舍五入到下一个更高的数字

Math.Ceiling(v / 2.5) * 2.5怎么样?

您需要数学天花板

这需要一个双精度,并将其向上四舍五入到最接近的整数,除非该值已经等于一个整数。然而,它返回的数据类型仍然是双精度的。

用法示例。。。

Double testValue = 1.52;
Console.WriteLine(Math.Ceiling(testValue));

将打印CCD_ 2。

Math.Ceiling正是您所需要的。

您可以使用该的Math.Ciling