全文检索不能用了,请给个保险的四舍五入的函数,谢谢(22分)

  • 主题发起人 主题发起人 delnew
  • 开始时间 开始时间
D

delnew

Unregistered / Unconfirmed
GUEST, unregistred user!
需经过了你的实际检验。谢谢
 
round(x+0.00000001),后面加的小数,应小于X精度的10倍。这样用非常可靠。
 
round 涵數
 
Trunc或Round
 
round是四舍五入取整,如果保留2位小数怎么写?

roundto或者formatfloat直接用保险吗?
 
round(x*100+0.001)/100;
 
to blyb
round采取的是银行家算法,round(x*100+0.001)/100
加001有什么作用?
 
RoundTo使用的是银行家算法,一种舍入误差更小的算法,不同于四舍五入
RoundTo(数字,想要保留的位数),如要保留一位小数,则
RoundTo(4.99,-1),如要保留0位则Roundto(4.99,0)
 
uses math;
SimpleRoundTo
 
//通常的四舍五入法保留小数位数 (RoundTo是四舍六入五留双)
//ADIGIT:保留小数位数
function RoundFloat(var Value: double
const ADIGIT: Integer): double;
var
S: string;
ef: Extended;
begin
S := '#.' + StringOfChar('0', ADIGIT);
ef := StrToFloat(FloatToStr(Value))
//防止浮点运算的误差
Result := StrToFloat(FormatFloat(S, ef));
end;
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2587253
 
多人接受答案了。
 
后退
顶部