<strong>什么是trunc的替代品</strong>(30分)

  • 主题发起人 主题发起人 mafan
  • 开始时间 开始时间
M

mafan

Unregistered / Unconfirmed
GUEST, unregistred user!
什么函数可以替代trunc?
 
要代替干嘛?它不好用??
 
Trunc的最接近函数是Int, Trunc返回的是整数, Int返回的是一个实数的整数部分但是类型还是实数
 
trunc是做什么用的?对不起,小弟实在有些菜。:)
 
你们见过用TRUNC出现除零错误吗?
 
trunc本身只是截取,除零错误是你自己的问题吧?
 
i开头的是INTEGER,F开头的是SINGLE
错误第一种:
i1:=i0+100;
f1:=i1/50;
i2:=trunc(f1)
//出现除零错误,这里如果用ROUND就不出错
错误第二种:
i1:=i0+100;
f1:=i1/50;
f2:=int(f1)
//出现除零错误
i2:=round(f2)


原因可能是刚刚调用了一个外部的DLL
 
试用Round(),一个要舍入,一个取整。
 
用Round()是四舍五入的,Trunc()是取整,抹掉小数点后的数。试试吧。
var
FF : Double;
begin
FF := 32143214.74435345324;
ShowMessage('Trunc:' + FloatToStr(Trunc(FF)) + #13 + 'Round:' + FloatToStr(Round(FF)));
end;
 
不行就自己写了个,这也并不是难事。

不就是个整数吗?

 
我只是想知道都会有什么可能造成TRUNC和INT出现除零错误,并非真的要一个TRUNC
的替代函数,但关键是如果会有错误发生,它迟早会发生的!
 
后退
顶部