roundto函数带来的问题 single类型的四字节浮点数,用roundto(asingle,-2)保留两位小数,这时出现个一个问题,是如果asingle小于或大于一个值的时候,asingle就用科学计数法表示,在用roundto就会有错误,现在想知道这个界限值,怎么判断这个值避免这个问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好的办法是用FloatToStr,然后再对字符串操作,精度上不会出现xx.xx9999999999这样的情况。 对付这类问题,比较灵活的办法是自己编程处理。你可以看看roundto的源码function RoundTo(const AValue: Double; const ADigit: TRoundToRange): Double;var LFactor: Double;begin LFactor := IntPower(10, ADigit); Result := Round(AValue / LFactor) * LFactor;end;其中intpower 原型:function intpower(base:float;const exponent:Integer):float 功能:返回base的exponent次方 今天起得早,运动完后做下数学题,由于没有相关准确资料, 我用硬代码测试了一下,这个临界值=92233722601930753。(aSingle >= 临界值则roundto(asingle,-2)出现异常). 希望是正确的。 roundto 建议少用还是用FloatToStr 好用点 ASP.NET源码大全-5G 有源码 怎么更改delphi生成的EXE的图标和显示的公司名称 如何实现文件替换功能! 在一表中怎样用sql语句删除重复的数据,只保留其中的一条数据? delphi列表框比较 Delphi7 license的问题----特急求救、特急求救 如何让窗体无法被鼠标托动?? 界面控制的问题???? 我在TreeView中的节点Icon显示不全,好象被拉伸了,怎么回事?(一定给分) 请问如何在win2000实现自定义纸张大小呢??? 调用dll函数的问题 Delphi使用ADO连接MySql时提示错误
var
LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := Round(AValue / LFactor) * LFactor;
end;其中intpower 原型:
function intpower(base:float;const exponent:Integer):float
功能:返回base的exponent次方