我在数据库上有大浮动:20202166.16
当我打电话给PHP:
$num = odbc_result($sqlQuery,0);
$number = number_format($num,2,',','.');
我得到20.202.170,00
,但我想要20.202.166,16
知道如何防止自动舍入?
答案 0 :(得分:1)
根据评论中的答案,听起来不像PHP。您不会说出您正在使用的数据库,但猜测它可能是MySQL吗?
浮点值问题
浮点数有时会引起混淆,因为它们是 近似值并未存储为精确值。浮点值为 用SQL语句编写的值可能与值不同 内部代表。尝试将浮点值视为 确切的比较可能会导致问题。他们也受制于 平台或实现依赖项。 FLOAT和DOUBLE数据 类型受这些问题的影响。对于DECIMAL列,MySQL执行 精度为65位十进制数的运算,应解决 最常见的不准确问题。
来源:https://dev.mysql.com/doc/refman/5.7/en/problems-with-float.html
尝试将列类型更改为DECIMAL,看看是否能解决问题。