我與BIGINT值的PHP表示試驗(這是在表中的鍵),並測試PHP如何處理大量的字符串/浮點值我寫了一個小小的測試:PHP BIGINT表示
<?php
echo "PHP_INT_MAX=".PHP_INT_MAX."\n";
$x = "9223372036854775107";
echo "Defining x as : 9223372036854775107\n";
$y = floatval($x);
echo "float of x: ".$y."\n";
echo "float to string using strval: ".strval($y)."\n";
echo "float to string using sprintf: ".sprintf("%.0f", $y)."\n";
?>
所以我很好奇輸出:
PHP_INT_MAX=9223372036854775807
Defining x as : 9223372036854775107
float of x: 9.2233720368548E+18
float to string using strval: 9.2233720368548E+18
float to string using sprintf: 9223372036854774784
那麼,爲什麼我會得到不匹配的值? (php.ini文件中的精度= 14)
他們看起來像他們一致對我來說,哪來的差異? –
您瞭解精確度設置 - '92233720368548'在該數字中有14位有效數字。將設置增加到20以看到它就像你想要的。 –
我已經添加了與ini_set('precision',32)相同的測試;並且仍然相同(標記:9223372036854775107!= 9223372036854774784) –