function Check_A181(var Value1,Value2:Double):Boolean;
var
v11,v17,v18:Double;
begin
with TaxDM.TaxTable_A do
begin
Locate('xmdm',11,[loPartialKey]);
v11:=FieldByName('ybbys').AsFloat;
Locate('xmdm',17,[loPartialKey]);
v17:=FieldByName('ybbys').AsFloat;
Locate('xmdm',18,[loPartialKey]);
v18:=FieldByName('ybbys').AsFloat; Value1:=v18;
Value2:=v11-v17; if Value1=Value2 then
result:=true
else
result:=false;
end;
end;我用上面的代码检查Value1和Value2的值是否相等,计算完成后Value1=335379.42 Value2=335379.42,但是“ if Value1=Value2 ”却判断这两个值不等,我实在是不明白为什么。我用的数据库是access2000,ybbys是双精度型,小数位为2
var
v11,v17,v18:Double;
begin
with TaxDM.TaxTable_A do
begin
Locate('xmdm',11,[loPartialKey]);
v11:=FieldByName('ybbys').AsFloat;
Locate('xmdm',17,[loPartialKey]);
v17:=FieldByName('ybbys').AsFloat;
Locate('xmdm',18,[loPartialKey]);
v18:=FieldByName('ybbys').AsFloat; Value1:=v18;
Value2:=v11-v17; if Value1=Value2 then
result:=true
else
result:=false;
end;
end;我用上面的代码检查Value1和Value2的值是否相等,计算完成后Value1=335379.42 Value2=335379.42,但是“ if Value1=Value2 ”却判断这两个值不等,我实在是不明白为什么。我用的数据库是access2000,ybbys是双精度型,小数位为2
解决方案 »
- checkbox相关问题,求教各位
- Free和Destroy应该用那个?
- 有关delphi的database desktop建表问题?
- 另一个十万火急的问题,请各位帮帮忙!!!
- 大家讨论一下用什么方法做大批量的数据插入比较好。
- 对于窗体开发而言,Delphi是不是最好的选择?
- 如何搜索程序中的中文???
- 用Delphi调用C++的dll。(该Dll为一个用__declspec(dllexport)输出的类!!!) 高手请进
- 一个table,一个datasource,一个dbgrid,一个query,利用tablename显示不同数据库的关于SQL查询的问题
- 请问delphi有没有这样的组件
- 请问如何控制DBGrid的编辑、提交等操作??我现在一旦跑到下一条记录它就自动提交了,怎么办,根本不听我的控制?
- 客户要我做繁体版软件,我需要什么配置?高分相送!
result:=true
else
result:=false;
改为
if abs(Value1-Value2)<0.00001 then
Result:=True
else
Result:=False
nMin = 1E-6;
if abs(Value1 - Value2) < nMin then
Result := True
else
Result := False浮點數不能精確表示,所以存在很小的誤差。
Value1:=roundto(value1,-2);
Value2:=roundto(value2,-2);