Php cast to int返回double

时间:2016-08-03 07:35:29

标签: php casting type-conversion

有人可以告诉我为什么code会在double中返回php吗?

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

Gettype($personal_id)会像double

一样返回4294967294.0

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

4 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

试试这个;

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

答案 2 :(得分:0)

也许您应该尝试intval() (cf. official documentation)

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

答案 3 :(得分:0)

$personal_id = (int)($born_number * 2);