我在格式化小数面临的一个问题,假设我可以有两个十进制数,其中小数可18位之前或之后,格式,如:十进制数字格式化问题
$num1 = 12345678912345678912345.52458
$num2 = 123.54893256666666
对上述两个号码我的期望是出在条件基础,是
为$ NUM1: 如果小数点自带18位经过这么小数点应该只是18digit后和2位是作为一个精确唯
后为$ NUM2: 如果小数点自带18位之前,所以小数应该是因为它的位置,但精度应该是
所需的出小数
后只有2位:$num1 = 123456789123456789.00
$num2 = 123.54
我有与数number_format()
尝试这样象下面这样:
<?php
$num1 = 12345678912345678912345.52458;
$num2 = 123.54893256666666;
$num1 = number_format($num1,2,'.',''); //it is not working
$num2 = number_format($num2,2,'.',''); //it is working
echo $num1."<br>".$num2;
输出:
for $num1 = 12345678912345679593472.00 where it should comes like 123456789123456789.00
for $num1 = 123.55 that is ok
请帮我没有得到如何为什么你需要大量使用number_format()
为$ NUM1
PHP不能处理这个问题是很大的数字。做一个'echo PHP_INT_MAX;'并查看系统中的最大大小(根据使用32位还是64位版本而有所不同)。 –
但我的号码是十进制的?将'PHP_INT_MAX'工作 –
是的。数字是数字。否则,如果你只是需要在一个太大的整数后加上一个“.0”,那就不成问题了。 –