我需要将正浮点向上舍入到最接近的整数。如何将下一个整数向上舍入为正数?
examples;
1.0 rounds up to 1
2.1 rounds up to 3
3.5 rounds up to 4
4.9 rounds up to 5
即总是舍入。
我需要将正浮点向上舍入到最接近的整数。如何将下一个整数向上舍入为正数?
examples;
1.0 rounds up to 1
2.1 rounds up to 3
3.5 rounds up to 4
4.9 rounds up to 5
即总是舍入。
使用Math
单位的Ceil
函数。从文档:
将变量向上朝向正无穷大。
调用Ceil(如在天花板中)以获得大于或等于X的最小整数 。X的绝对值必须小于MaxInt。对于 例如:
- 的Ceil(-2.8)= -2
- 的Ceil(2.8)= 3
- 的Ceil(-1.0)= -1
我无法分辨Ceil
的行为是否符合您对负面输入值的期望,因为您未指定在此处执行的操作。然而,如果Ceil
不符合您的期望,通过结合Abs()
和Ceil()
这正是我想要的,但在win32(或.net专用)上可用的System.Math? – srayner 2014-09-22 11:17:56
在D2010上,它是'Math'单位。在DXE2或更高版本中,命名空间是'System.Math'。 – 2014-09-22 11:18:37
FWIW,向上舍入和最接近是不相容的,可以很容易地编写函数来满足您的需求。你的意思是简单地收集。 – 2014-09-22 11:12:08
4.4应该轮到什么? -5或-4? – 2014-09-22 11:13:06
查看http://docwiki.embarcadero.com/Libraries/XE6/en/System.Math.Ceil – 2014-09-22 11:15:09