如何将正浮点数向下舍入下一个整数?

sra*_*ner 6 delphi delphi-2010

我需要将正向浮动向上舍入到最接近的整数.

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 
Run Code Online (Sandbox Code Playgroud)

即总是围捕.

Dav*_*nan 16

使用本机的Ceil功能Math.从文档:

将变量向正无穷大舍入.

调用的Ceil(如在天花板),以获得最低的整数大于或等于X,X的绝对值必须小于MAXINT.例如:

  • Ceil(-2.8)= -2
  • Ceil(2.8)= 3
  • Ceil(-1.0)= -1

我不知道行为是否Ceil满足您对负输入值的期望,因为您没有指定在那里做什么.但是,如果Ceil不符合您的期望,通过组合Abs()和编写功能以满足您的需求是很容易的Ceil()

  • 在D2010上,它是"数学"单元.在DXE2或更高版本中,使用名称空间它是`System.Math`. (4认同)