我正在使用gambit-c整数来评估方案算术运算,但其结果被忽略了。例如,我执行(+ 2320.01),它给我43.010000000000005,而不是43.01。
只有当我使用带有两个小数点的数字时,才会发生这种情况。
有解决办法吗?
发布于 2014-04-14 23:47:27
这与浮点计算的方式有关。请阅读关于浮点算法,每个程序员应该知道些什么?。
你运气真好!在Scheme中,您可以使用确切的数字来解决这个问题:
(+ 23 #e20.01) ; ==> 4301/100你可以用以下方法使它不精确:
(exact->inexact (+ 23 #e20.01)) ; ==> 43.01https://stackoverflow.com/questions/23071543
复制相似问题