简单问题,困扰很久,请各位帮忙

ffwin 2009-12-13 11:23:41
procedure TForm1.Button1Click(Sender: TObject);
var
f1, f2, f3: single;
i1: integer;
begin
i1 := 18137371;
f1 := 0.0;
f2 := f1 + i1;
f3 := f2;
Edit1.Text := FloatToStr(f3);
end;

想知道为什么 edit1.text 结果总为18137372,我用的D7
...全文
141 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenshm 2009-12-14
  • 打赏
  • 举报
回复
你把数字换为7位以内有效数就不会了。
刚刚用D7测试过。
fenshm 2009-12-14
  • 打赏
  • 举报
回复
Single类型的数据在计算的时候会产生进位误差。
ffwin 2009-12-14
  • 打赏
  • 举报
回复
是的,将single换成double就没有问题了

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧