0.00001还是1.00001都变成了科学计数1E-6,而我就是要原样输出0.00001或1.00001,怎么办?

nimeide1234567890 2015-06-18 09:41:23
ClientDataSet1.FieldByName('dtzl').AsString:=Format('%.6e',[0.00001]);

0.00001变成了科学计数1E-6,而我就是要原样输出0.00001,怎么办?


ClientDataSet1.FieldByName('dtzl').AsFloat:=FormatFloat('000000.000000',FieldByName('dtzl').AsFloat);
这样也不行
...全文
831 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nebula845026 2015-06-25
  • 打赏
  • 举报
回复
刚用手机写了半天都没了,白写了 总之你在输出浮点数字符串的时候要格式化,往数据库存的时候看你对应字段的类型,浮点数存进去,再往出输出或显示在某个地方时用格式化,例如 str:=format('%.3f',[FieldByName'dtzl'.asfloat])
lyhoo163 2015-06-23
  • 打赏
  • 举报
回复
你是通过DBGrid显示数据的吧。这样,就DBGrid的Columns.格式问题了。 找到是那列,第1列是0,试试: DBGridEh1.Columns.Items[i].DisplayFormat:='0.000000';
nimeide1234567890 2015-06-21
  • 打赏
  • 举报
回复
引用 5 楼 lyhoo163 的回复:
Edit1.Text:=Format('%.6f',[0.00001]); 转换的字符一定是0.00001 你执行一下上述代码,测试一下吧。
Edit5.Text:=Format('%.6f',[0.000001]); 这个确实显示的是0.000001 ClientDataSet1.FieldByName('dtzl').AsString:=Format('%.6f',[0.000001]); 那这里为什么显示的还是:1E-6 ?
lyhoo163 2015-06-20
  • 打赏
  • 举报
回复
Edit1.Text:=Format('%.6f',[0.00001]); 转换的字符一定是0.00001 你执行一下上述代码,测试一下吧。
nimeide1234567890 2015-06-19
  • 打赏
  • 举报
回复
引用 2 楼 doloopcn 的回复:
小数点会产生误差,建议转换之前变成整数 aValue:=Trunc((Field.Value*100000)/100000)
ClientDataSet1.FieldByName('dtzl').AsFloat:=Trunc((FieldByName('dtzl').AsFloat*100000)/100000); 这样变成0了都
nimeide1234567890 2015-06-19
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163 的回复:
ClientDataSet1.FieldByName('dtzl').AsString:=Format('%.6f',[0.00001]);

OR

ClientDataSet1.FieldByName('dtzl').AsFloat:=FormatFloat('%.6f',FieldByName('dtzl').AsFloat);

试试。
老大,都不行哦
doloopcn 2015-06-19
  • 打赏
  • 举报
回复
小数点会产生误差,建议转换之前变成整数 aValue:=Trunc((Field.Value*100000)/100000)
lyhoo163 2015-06-19
  • 打赏
  • 举报
回复
ClientDataSet1.FieldByName('dtzl').AsString:=Format('%.6f',[0.00001]);

OR

ClientDataSet1.FieldByName('dtzl').AsFloat:=FormatFloat('%.6f',FieldByName('dtzl').AsFloat);

试试。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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