PHPの整数最大値は、定数PHP_INT_MAX
で参照することができ、64ビット環境で9223372036854775807
である。
これに1
を足した数値は9223372036854775808
になるのだが、PHP_INT_MAX + 1
をstring型に型変換すると指数表記の'9.2233720368548E+18'
になる。
assert(strval(PHP_INT_MAX + 1) === '9.2233720368548E+18');
数値としては指数表記で間違いはないが、string型で'9223372036854775808'
のように指数表記でない形式が欲しい場合はどうしたらいいのだろうか?
その場合は、bcadd
関数で計算すると良い。
assert(bcadd(PHP_INT_MAX, '1') === '9223372036854775808');