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

2074.70* 100再转换为整数一直是207469,为什么会这样? 调试发现2074.70* 100的结果是207469.99999999997
慕婉清6462132
浏览 520回答 8
8回答

拉丁的传说

因为它要保留N位精度,可以在后面加个很小的小数就可以了: (int)((2074.70+0.000000001) * 100)

MMMHUHU

数据类型呗

HUX布斯

parseInt(2074.70) * 100

肥皂起泡泡

很简单,举个例子: 1.0其实在数据库中不一定就是真是1.0 可能是 0.99999999999999999999或者是1.0000000000000001   如果需要精确的表示浮点数,请用decimal decimal a = 1.23m

千万里不及你

精度问题,浮点数都是不准确的, 可以使用 decimal类型。

偶然的你

楼上加一,用decimal

慕丝7291255

类型问题  使用decimal 或者定义小数后加上M 比如2074.70M * 100
打开App,查看更多内容
随时随地看视频慕课网APP