PHP 中的 round 显示科学记数法而不是完整数字
-
20-08-2019 - |
题
我正在尝试对包含 1400000 的变量进行回显。所以有这样写: echo round(1400000);
这给出了 1,4E+6 而不是完整的数字。有人知道如何完整地展示它吗?
解决方案
似乎轮是问题所在。
我number_format()
改变它,这样做的工作就好了。
感谢阿隆和保罗的答案。
其他提示
与你的问题相关,我也遇到过 这条评论 在 PHP 网站上。
PHP 从标准十进制切换 的表示法到指数表示法 某些“特殊”的浮标。你可以看到 此类“特殊”的部分列表 值:
for( $tmp = 0, $i = 0; $i < 100; $i++ )
{
$tmp += 100000;
echo round($tmp),"\n";
}
因此,如果您添加两个浮点数,则最终会得到 “特殊”值,例如1.2E+6,则 将该值未修改地放入 更新查询以将值存储在 十进制列,比如说,你可能会 获取失败的事务,因为 数据库将看到“1.2E+6”作为 varchar 数据,而不是十进制。同样,您将 如果出现以下情况,可能会收到 XSD 验证错误 将值放入 XML 中。
我必须诚实地说:这是其中之一 我见过的最奇怪的事情 20 多年来的任何语言 编码,这是一个巨大的痛苦 解决方法。
似乎还没有“真正”的修复,但从评论中的评论来看 Paul Dixon 提到的错误报告 早些时候,他的解决方案似乎有效。
可能与此有关 bug报告,所以你可以尝试
printf("%d", $myvar);
不隶属于 StackOverflow