有人可以告訴我爲什麼這個code
返回double
在php
?PHP轉換爲int返回雙重
$personal_id = ((int) $person['born_number'] * 2);
Gettype($personal_id)
回報double
這樣4294967294.0
我怎樣才能解決這個問題?謝謝。
有人可以告訴我爲什麼這個code
返回double
在php
?PHP轉換爲int返回雙重
$personal_id = ((int) $person['born_number'] * 2);
Gettype($personal_id)
回報double
這樣4294967294.0
我怎樣才能解決這個問題?謝謝。
爲什麼雙?因爲變量do不適合整數大小。
您可以使用gmp來模擬大整數。 http://php.net/manual/en/intro.gmp.php
但我認爲這是過度工程。如果使用字符串而不是整數?
$personalId = sprintf("%.0f", ($a*2));
這看起來很不錯。謝謝。 –
試試這個;
$personal_id = floor($person['born_number'] * 2);
不起作用..... –
也許你應該嘗試intval()
(cf. official documentation)
$personal_id = intval($person['born_number'] * 2);
在這種情況下,intval()返回-2。 –
對於int來說太大了,您需要更改$ person ['born_number']。你將如何使用它,它從哪裏來? – Treast
$personal_id = (int)($born_number * 2);
這不起作用。它返回負值。 –
你需要改變你的原始變量。 –
嘗試'intval($ person ['born_number'] * 2)'; – Afsar
你的號碼對於整數來說太大了嗎? –
是的,它對整數來說太大了。但如何以優雅的方式解決它? –