四舍五入到下一个更高的数字
本文关键字:数字 下一个 四舍五入 | 更新日期: 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