如何对实数进行四舍五入操作?(50分)

  • 主题发起人 主题发起人 hyh
  • 开始时间 开始时间
H

hyh

Unregistered / Unconfirmed
GUEST, unregistred user!
又有问题要请教了!
我在做报表时,需要对一些字段的值进行统计,最终结果要表示为小数点后有
两位的百分数。我现在实现的是将数字型转化为字符型,并取小数点后两位,但若需要进行四舍五入时,这个方法就不合适了。请问哪位高手有办法解决?
多谢!
 
function decimalroundx(x:extended;p:integer):string;
var
temp:extended;
begin
if ((p>=0) and (p<=9)) then
begin
temp:=x*power(10,p);
temp:=round(temp);
x:=temp/power(10,p);
end;
result:=floattostr(x);
end;
 
在报表中有函数formatnumeric,可以一试
 
简单一点
percent:=round(x*100)/100;
 
直接用round(x:real)就行.
 
要求有两位小数,直接round得到的是integer
 
使用FormatFloat既可四舍五入,
如FormatFloat('0.00',2.345)为'2.35',试试吧.
 
((int)(x*100+0.5))/100.0
这是标准的C写法.
 
多人接受答案了。
 
后退
顶部