我在格式化小數面臨的一個問題,假設我可以有兩個十進制數,其中小數可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」,那就不成問題了。 –