编程和参加PHP课程的新手。我写了一个非常小的程序来测试number_format函数。这是我的代码:
$num = 9876543210123456789;
$result = number_format($num);
echo = $result;
输出为:9,876,543,210,123,456,512
我确定它与$ num的长度有关。但是未能找到确切的解释/原因。
答案 0 :(得分:2)
您看到的号码不同,因为您提供的号码足以导致系统溢出。尝试使用较小的数字
<?php
$num = 9876543210123;
$result = number_format($num);
echo $result; // will show as expected, with formatting
即使您没有在该号码上使用number_format
,您的号码仍会导致溢出。试试这个
$num = 9876543210123456789;
echo $num; // not what you see above
另见:
答案 1 :(得分:1)
您无法将大号传递给number_format()
函数。如果您只需要格式化数字,您可以编写自己的函数,用逗号分隔数字3乘3。
原因是如果您查看手册,数字格式将第一个参数作为浮点数。您需要对float
和ints
有一个很好的理解,才能理解它为什么会发生。
这是我在SO中找到的一些有趣的东西,它与你的问题相同,并且它有一个很好的答案。请检查一下。