laravel where查询比较float的字段大小时结果不对?

新手上路,请多包涵

->where("odd", ">", 0.3) 小于0.3的也查出来
->whereRaw("odd > 0.3") 结果正确

这是因为laravel的绑定参数导致的?
不用whereRaw应该怎么写?

阅读 2k
2 个回答
新手上路,请多包涵

个人认为是精度问题。where("odd", ">", 0.3)中0.3是单精度,而whereRaw("odd > 0.3")中0.3当作字符串。你可以验证下。

浮点数精度问题, 和 0.1+0.2 != 0.3 一样. 就直接转成字符串传到mysql吧.

推荐问题