Php强制转换为int将返回双精度


Php cast to int returns double

有人能告诉我为什么这个codephp中返回double吗?

$personal_id = ((int) $person['born_number'] * 2);

Gettype($personal_id)像这样返回double 4294967294.0

我该如何解决这个问题?谢谢

为什么要加倍?因为变量不适合整数大小。

您可以使用gmp来模拟大整数。http://php.net/manual/en/intro.gmp.php

但我认为这太过了。如果使用字符串而不是整数怎么办?

$personalId = sprintf("%.0f", ($a*2));

试试这个;

$personal_id = floor($person['born_number'] * 2);

也许你应该试试intval()(参见官方文档)

$personal_id = intval($person['born_number'] * 2);
$personal_id = (int)($born_number * 2);