【发布时间】:2010-01-20 09:27:10
【问题描述】:
我在进行 flex 计算时遇到了问题,我正在尝试将像素值转换为 mm 并反转它。
从 69.8 开始:
Calculating MM to pixel from: 69.8 mm
69.8*300 = 20940
20940 / 2.54 = 8244.094488188975
8244.094488188975 / 10 = 824.4094488188975
然后计算:
Calculating pixel to MM from: 824.4094488188975
824.4094488188975/300 = 2.7480314960629917
2.7480314960629917 * 2.54 = 6.979999999999999
6.979999999999999 * 10 = 69.79999999999998
我们想要 69.8,但最终得到了 69.79999999999998。 我使用简单的 windows calc 跟踪了这个过程,它出错的第一个地方是 20940 / 2.54 = 8244.094488188975 应该是 8244,094488188976。
在这方面的任何帮助都会很棒。
【问题讨论】:
-
每个计算机科学家都应该知道的浮点运算知识docs.sun.com/source/806-3568/ncg_goldberg.html
-
我重新标记了这个以添加数学,我认为它的问题和答案会帮助其他人,希望这会导致更多的人看到它。
标签: apache-flex math floating-point