Php 打印来自数据库的双字段时出现Laravel问题
我对laravel或php有一个问题(还不知道),问题是下一个: 我的数据库中有一个名为Php 打印来自数据库的双字段时出现Laravel问题,php,laravel,eloquent,Php,Laravel,Eloquent,我对laravel或php有一个问题(还不知道),问题是下一个: 我的数据库中有一个名为debe的字段,其值为3.97,如下所示。此字段是一个双(11,2) 当我在我的框架上访问该字段时,例如使用dd()它会正确返回值,如下所示 当我试图打印到视图中时,出现了主要问题,我收到了下一个: 我不知道为什么会发生这种情况,但目前我找到的唯一解决方案是使用PHPround()函数对值进行四舍五入 关于官方文件中的检查条款: 浮点数的精度有限。尽管这取决于 PHP系统通常使用IEEE 754双精度格
debe
的字段,其值为3.97,如下所示。此字段是一个双(11,2)
当我在我的框架上访问该字段时,例如使用dd()
它会正确返回值,如下所示
当我试图打印到视图中时,出现了主要问题,我收到了下一个:
我不知道为什么会发生这种情况,但目前我找到的唯一解决方案是使用PHPround()
函数对值进行四舍五入
关于官方文件中的检查条款:
浮点数的精度有限。尽管这取决于
PHP系统通常使用IEEE 754双精度格式,
由于顺序的四舍五入,这将给出最大的相对误差
第1.11e-16节。非初等算术运算可能会产生更大的错误
错误,当然,当发生错误时,必须考虑错误传播
一些行动是复杂的
另外,有理数可以精确表示为
以10为基数的浮点数,如0.1或0.7,没有
精确表示为基数2中的浮点数,即
在内部使用,无论尾数的大小。因此,他们
如果没有
精度损失小。这可能会导致令人困惑的结果:例如
例如,楼板((0.1+0.7)*10)通常返回7,而不是
预期为8,因为内部表示类似于
7.9999999999999118
所以永远不要相信最后一位的浮点数结果,也不要相信
直接比较浮点数是否相等。如果更高
精度是必要的,任意精度的数学函数和gmp
功能可用
您可以使用
round
或number\u格式
函数获取所需的小数您可以发布代码吗?你的问题是为什么dd
输出是集合?使用number\u格式如何?@我的问题是为什么php或laravel会格式化字段,数据库中的字段是3.97,问题是为什么我得到3.9699999998和3.97。问题只是数字的精度
。谢谢你的回答,我阅读了文件,我同意,但还有一个问题。。。这是随机发生的吗??因为例如3.98打印得很好。。。