B blyb Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #3 round(x+0.00000001),后面加的小数,应小于X精度的10倍。这样用非常可靠。
D delnew Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #6 round是四舍五入取整,如果保留2位小数怎么写? roundto或者formatfloat直接用保险吗?
D delnew Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #8 to blyb round采取的是银行家算法,round(x*100+0.001)/100 加001有什么作用?
Z ZSHW Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #9 RoundTo使用的是银行家算法,一种舍入误差更小的算法,不同于四舍五入 RoundTo(数字,想要保留的位数),如要保留一位小数,则 RoundTo(4.99,-1),如要保留0位则Roundto(4.99,0)
RoundTo使用的是银行家算法,一种舍入误差更小的算法,不同于四舍五入 RoundTo(数字,想要保留的位数),如要保留一位小数,则 RoundTo(4.99,-1),如要保留0位则Roundto(4.99,0)
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #10 uses math; SimpleRoundTo
W wuyaobin Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #11 //通常的四舍五入法保留小数位数 (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;
//通常的四舍五入法保留小数位数 (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;
X xl4772 Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-17 #12 http://www.delphibbs.com/delphibbs/dispq.asp?lid=2587253