怎样将金额中的分去掉 ?(10分)

  • 主题发起人 主题发起人 国色天香
  • 开始时间 开始时间

国色天香

Unregistered / Unconfirmed
GUEST, unregistred user!
有个软件客户要求将收费金额中的分去掉,不管是 3 分还是 7 分 ,
我用 formatfloat('0.00',int(je*10)/10) ,
结果发现大多数数字是正常的,但有些数据 如 7.1 元,运算后得 7.00 元,怎么解决?
 
精度损失了, 虽然je = 7.1, 但je*10 < 71 (可能是70.999...)
因此Int(je*10)就得不到71, 而是70
可以用round解决
formatfloat('0.00',round(je*10)/10)
 
round 也不行,
这样吧, 加一个很小的数
formatfloat('0.00',int(je*10+0.005)/10)
 
四舍五入用
formatfloat('0.00',round(je*10)*0.1)
舍去最后的分位用
formatfloat('0.00',Floor(je*10)*0.1)
 
用floor也不行, 只要je的类型是Real, 结果还是7.00,
非要加上一个小数不可
 
formatfloat('0.0',je)
 
可是先按两位小数将数据转换成字符串,然后删除最后一个字符。
 

Similar threads

D
回复
0
查看
780
DelphiTeacher的专栏
D
D
回复
0
查看
820
DelphiTeacher的专栏
D
D
回复
0
查看
652
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部