PHPで桁あふれなく演算する。GMP(GNU Multi-Precision Library)を使用する。
もしもハイパーインフレになったら。多倍長演算の仕事が増えるかも。 - 4丁目よりに書いてある
ハイパーインフレにPHPでも耐えれるように。
ソース
test.php
<?php //GMP(GNU Multi-Precision Library) $n = gmp_init('999999999999999999999999999999999999999999999999999999999999999999999999'); $n = gmp_add($n,gmp_init(1)); //加算 echo gmp_strval($n)."\n"; $n = gmp_mul($n,gmp_init(2)); //減算 echo gmp_strval($n)."\n"; $n = gmp_sub($n,gmp_init(2)); //乗算 echo gmp_strval($n)."\n"; $n = gmp_divexact($n,gmp_init(2)); //除算 echo gmp_strval($n)."\n";
結果
C:\>php test.php 1000000000000000000000000000000000000000000000000000000000000000000000000 2000000000000000000000000000000000000000000000000000000000000000000000000 1999999999999999999999999999999999999999999999999999999999999999999999998 999999999999999999999999999999999999999999999999999999999999999999999999
データベースにはStringで入れるのかなぁ。
その他のLL言語
その他のLL言語は
多倍長整数演算の速度比較 - まめめもで速度比較(ruby,python,perl)とかが。