有关转换double->int的问题

最近发现在极少数的情形下,从 double->int会出现问题,例如 33.3*100 ,应该是 3330 ,但如果做一个数型的转换 Int(33.3*100) 会得到 3329 的结果?另外 Int(66.6*100) 得到 6659 ,请问这是什么原因呢?

我是在写swift程式时发现的,发现在c/c++中也是如此状况。

谢谢


yesonline
浏览 1716回答 2
2回答

木柘

数据在内存里不是跟数学意义上一样的。

yesonline

谢谢,我也是如此认为,但实际上要如何解决这个情形呢?我用swift做一个计算机,33.3乘以100本来应是得到3330的,如今却出现这种情形,导致后续的计算出错,不知可有解决之法?
打开App,查看更多内容
随时随地看视频慕课网APP