16

これを試していますが、大きな値を保存できません

$var = rand(100000000000000,999999999999999);
echo $var; // prints a 9 digit value(largest possible)

目的の値を取得する方法は?

4

4 に答える 4

20

マニュアルから:

整数のサイズはプラットフォームに依存しますが、最大値は約 20 億が通常の値です (符号付き 32 ビット)。通常、64 ビット プラットフォームの最大値は約 9E18 です。PHP は符号なし整数をサポートしていません。PHP 4.4.0 および PHP 5.0.5 以降では、整数サイズは定数 PHP_INT_SIZE を使用して決定でき、最大値は定数 PHP_INT_MAX を使用して決定できます。

...

PHP が整数型の境界を超える数値を検出すると、代わりに float として解釈されます。また、整数型の境界を超える数値になる操作は、代わりに float を返します。

BC MathGMPは、この制限を操作する (唯一の?) 方法です。

于 2011-12-27T17:02:01.160 に答える
5

PHP int は通常 32 ビットです。他のパッケージは、より高精度の int を提供します: http://php.net/manual/en/language.types.integer.php

于 2011-12-27T16:59:42.477 に答える
5

非常に大きな数を扱う必要がある場合、私は BC Math で成功を収めました。ここにあなたが知る必要があるすべてへのリンクがあります:

http://php.net/manual/en/book.bc.php

于 2011-12-27T17:01:21.380 に答える