我正在编写一个 PHP 脚本,用于查看浮点值的数据库表,这些浮点值往往有点小,例如:
0.00052
0.00134
0.00103
0.00149
0.00085
0.00068
0.00077
0.00088
0.00169
0.00063
由于我未知的原因,某些值以科学计数法出现在数据库中,例如:
1.12305e-06
该表设置为浮动,我尝试了 PHP 中的各种函数来强制数字显示为十进制,但无济于事。尽我所能,我无法让这个数字表在所有情况下都一致为十进制。
关于如何解决这个问题有什么建议吗?尝试过打字(float)
并使用number_format()
和其他几个选项,但每次都不会改变。
CLI(可能还有其他地方)显示的内容似乎有六位数字的限制。您的示例是 1.12305e-06,它是 0.00000112305,它将显示为 0.00000 - 尽管显然它不是零。
如果你坚持使用浮点数或双精度数,你将不得不使用类似的东西来强制它们round(columnName,5)
强制以十进制值显示。否则,也许切换到十进制数据类型。
From http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html
由于浮点值是近似值并且不存储为精确值,因此尝试在比较中将它们视为精确值可能会导致问题。它们还受到平台或实现依赖性的影响。有关详细信息,请参阅第 C.5.5.8 节,“浮点值的问题 http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html”
另请参阅此thread http://forums.mysql.com/read.php?10,263388在 mysql 论坛上关于这个确切的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)