为了账号安全,请及时绑定邮箱和手机立即绑定

2074.70* 100=207469.99999999997 这是怎么回事啊

2074.70* 100=207469.99999999997 这是怎么回事啊

慕婉清6462132 2018-12-07 10:54:59
2074.70* 100再转换为整数一直是207469,为什么会这样? 调试发现2074.70* 100的结果是207469.99999999997
查看完整描述

8 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

因为它要保留N位精度,可以在后面加个很小的小数就可以了: (int)((2074.70+0.000000001) * 100)
查看完整回答
反对 回复 2018-12-09
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

数据类型呗
查看完整回答
反对 回复 2018-12-09
?
HUX布斯

TA贡献1876条经验 获得超6个赞

parseInt(2074.70) * 100
查看完整回答
反对 回复 2018-12-09
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

很简单,举个例子: 1.0其实在数据库中不一定就是真是1.0 可能是 0.99999999999999999999或者是1.0000000000000001   如果需要精确的表示浮点数,请用decimal decimal a = 1.23m
查看完整回答
反对 回复 2018-12-09
?
千万里不及你

TA贡献1784条经验 获得超9个赞

精度问题,浮点数都是不准确的, 可以使用 decimal类型。
查看完整回答
反对 回复 2018-12-09
?
偶然的你

TA贡献1841条经验 获得超3个赞

楼上加一,用decimal
查看完整回答
反对 回复 2018-12-09
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

类型问题  使用decimal 或者定义小数后加上M 比如2074.70M * 100
查看完整回答
反对 回复 2018-12-09
  • 8 回答
  • 0 关注
  • 519 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信