你的代码是正确的,你只需要使用一个字符串
$sum = "000000000117800";
echo number_format($sum, 2, ".", ".");
打印(http://ideone.com/534ATu)
117.800.00
虽然,你必须除以100
得到正确的小数部分
$sum = "000000000117800";
echo number_format($sum / 100, 2, ".", ".");
打印(http://ideone.com/A5LFpS)
1.178.00
问题是当你分配
$sum = 000000000117800;
它已经被转换为79
(作为 的八进制值$sum
),您对此无能为力。
那么为什么字符串会起作用呢?因为number_format
expetcsfloat
作为第一个参数,所以 PHP 执行从string
to的转换float
,忽略前导0
的。结果117800
,我们必须进一步除以100
得到小数点,然后我们可以number_format
用于漂亮的显示,或者干脆做(http://ideone.com/IeBCmF)
$sum = "000000000117800";
echo $sum / 100;
并得到
1178
并且对于
$sum = "000000000117805";
echo $sum / 100;
我们得到
1178.05
按照要求
最后一点关于number_format
- 要获得您应该使用的所需格式
number_format( $value, 2, ',', ' ')
所以(http://ideone.com/yDQXde)
$sum = "000000000117805";
echo number_format( $sum / 100, 2, ',', ' ');
印刷
1 178,05