回答
这就是所谓的近似精度。这不是一个错误,floating point数据类型旨在以这种方式工作。他们无法精确地存储数据。所以如果这很重要,你应该使用定点数据类型,例如MySQL中的DECIMAL
。
在另一方面,你可以随时使用精度增量为比较浮点,如:
SELECT
`foo`,
`bar`,
IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
t
,你可以看到,这里三角洲是1E-13
(通常情况下,这将是足够的)
实际上我必须开发一个库存管理软件。库存量可能在小数点后5位,以便我使用双精度。让我有一个在商店19.87数量的产品。当我尝试将19.87数量转移到另一家商店时,显示的数量不足以转移。现在我该如何管理它。 –
为此使用'DECIMAL'。您的价值将被精确地储存 –
怎样才能有“在商店中有19.87数量的产品? –
这个问题是由于浮点精度和对它们的计算。 您也可以参考此问题的清晰度上你的问题:
- 1. 减去列中的两个相邻值
- 2. 减去MATLAB两个相等的浮点数字不等于0
- 3. 两个表不相等
- 4. 两个数组有相同的值,但不返回相等
- 5. 为什么他们两个不相等
- 6. 两个相等的组合键不会达到相同的缩减器
- 7. MySQL,相等还是不相等?
- 8. 为什么在Angular 2中两个相等的对象显示'不相等'
- 9. 相等的值不相等吗?
- 10. Python两个Spinboxs等于相同的值
- 11. 值相同但不相等
- 12. Java两个相等的字符串不相等
- 13. 为什么这两个值在Arduino上不相等?
- 14. 两个JTextFields中的数据在相同时不相等
- 15. 比较两个不同阵列中的值是否相等
- 16. 组合两个不相等的数组
- 17. MYSQL - 选择两个字段是相等的两个表
- 18. 为什么这两个相同的字符串在JavaScript中不相等?
- 19. 相同的数组值不相等?
- 20. 两个不相等的对象具有相同的散列码
- 21. Coil两个llvm:SmallPtrSet相等
- 22. PHPUnit - 断言两个XML不相等
- 23. 两个字符串不相等
- 24. 两个相同的字符串如何不相等?
- 25. 两个相同的字符串不相等
- 26. 创建两个相邻的NSDates并不相等
- 27. 相同的数据但两个节点内部不相等
- 28. TF IDF不相等,当TF在两个文件是相同的
- 29. 两个相同的JavaScript日期不相等
- 30. 包含相同元素的两个数组不能相等吗?
想必这些字段不整数....如果是这样,你将会收获你播种什么! –
这些字段是双倍的。 @MitchWheat –
强制链接:[每个计算机科学家应该知道的关于浮点算术](http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) –