Fast-Report VCL中如何用PascalScript实现向上取整?
Fast-Report PascalScript 实现向上取整的方法
在Fast-Report的PascalScript中,自带的Round函数是四舍五入逻辑,要实现你需要的向上取整(无论小数部分多少,只要大于0就进一位),可以用以下两种方案:
方案1:自定义向上取整函数
如果无法直接调用系统自带的向上取整函数,可以手动实现逻辑:利用Trunc函数获取数值的整数部分,再判断小数部分是否大于0,大于0则整数部分加1,否则直接返回整数部分。
代码示例:
function CeilCustom(x: Double): Integer; begin // Frac(x) 获取x的小数部分 if Frac(x) > 0 then Result := Trunc(x) + 1 else Result := Trunc(x); end;
使用方式:在Fast-Report的表达式或脚本中调用这个函数即可,比如CeilCustom(10.25)会返回11,CeilCustom(1.1)返回2。
方案2:直接调用Math单元的Ceil函数
Fast-Report的PascalScript通常支持引用Math单元,其中的Ceil函数原生就是向上取整逻辑。如果你的环境可以使用这个单元,直接调用即可:
示例:
uses Math; // 直接调用Ceil函数 var num: Double; resultNum: Integer; begin num := 30.79; resultNum := Ceil(num); // resultNum的值为31 end;
测试验证:
- 输入
10.25→ 返回11 - 输入
30.79→ 返回31 - 输入
1.1→ 返回2 - 输入
5.0→ 返回5
内容的提问来源于stack exchange,提问作者Alpha
相关产品推荐
相关产品推荐

