delphi7 如何使double类型只保留两位小数

yifengqing 2017-06-23 12:29:38
最近遇到一个价格计算的,从数据库里查出来的数据我赋值给了string类型,用strtofloat后不是只有两位的小数,但是单价是两位的,数据库存储时也是两位的,求大神指点指点,怎么才能使获取的出来的数据变成两位小数double类型。。。。。
...全文
1700 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
doloopcn 2017-07-04
  • 打赏
  • 举报
回复
这个问题关键点在于数据库字段的类型。 如果是MSSQL,一定要设置字段的类型为固定的NUMERICA,如'0.00'字样的,不然你转来转去,结果在数据库中都是科学记数法。设置好字段后,DELPHI赋值上去的什么DOUBLE,FLOAT就会自动被数据库四舍五入----你不想四舍五入的话就用TRUNC(你的数值*100)/100
hongss 2017-06-23
  • 打赏
  • 举报
回复
dbl_Value = StrToFloat( FormatFloat(‘0.00‘’’, dbl_Value) );
这样转换出来的double型数据就是两位小数的模式,可以在程序中两位小数显示,而不会出现四舍五入等相差0.01的情况出现。但是保存的时候,就像楼上说的,双精度型的格式是固定的,无法改变。
lyhoo163 2017-06-23
  • 打赏
  • 举报
回复
Double,格式(精度)是固定,不能改变。显示时只能通过字符串形式,实现2位小数。
lyhoo163 2017-06-23
  • 打赏
  • 举报
回复
var S:string;
begin
  S:=Format('%.2f',[StrToFloat(FieldByName('单价').asString)]);
end;

16,748

社区成员

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

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