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,查看更多内容