四舍五入(50分)

  • 主题发起人 主题发起人 fuku
  • 开始时间 开始时间
F

fuku

Unregistered / Unconfirmed
GUEST, unregistred user!
截取一个real型数值的某几位,例如四舍五入精确到小数点后两位,小弟用
round函数发现是转为整型的,可有其他什么截尾函数?还有就是取中间几位
有否函数调用?
 
round函数就是四舍五入进整数的
 
自己乱写的,参考一下
function round_x(inputNumber:real;decimal:integer):real;
begin
round_x:=round(inputNumber*Exp(Ln(10)*decimal))/Exp(Ln(10)*decimal);
end;
 
用 formatFloat 不知道可不可以达到你的要求?
;)
 
function rRound(r:TNumber;Dec:integer):TNumber;
var
i:integer;
temp:TNumber;
begin
temp:=1;
if Dec>=0 then
for i:=1 to Dec do temp:=temp*10
else
for i:=-1 downto Dec do temp:=temp/10;
result:=round(r*temp)/temp;
end;
 
var
str:String;
CurReal:Currency;
begin
str:=Format('%*.*f', [8, 2, 123.456])
CurReal:=StrToCurr(str);
end;
 
如果四舍五入后不在参加计算,而是用于保存或显示打印应该使用Str函数。
大富翁的有位统计学专家(对不起老兄忘了你的大名)告诉我,四舍五入严格讲
应该是“四舍六入五取双”。Round函数返回结果就是这样。
round(1.5)=2
round(2.5)=2

procedure TForm1.Button1Click(Sender: TObject);
var
S : String;
begin
Str(1.2345:5:2,S);
Button1.Caption:=S;
end;

 
多人接受答案了。
 
后退
顶部