294867828828426241
PHPの数値から 1 を引く必要があります。しかし、私がするとき
$a = 294867828828426241 - 1;
浮動小数点数を受け取ります2.94867828828E+17
。によって解決されるnumber_format()
と、元の番号が得られます。
どうすれば正しい値を取得できますか?
これは、さまざまな数値で機能できる必要があります。
294867828828426241
PHPの数値から 1 を引く必要があります。しかし、私がするとき
$a = 294867828828426241 - 1;
浮動小数点数を受け取ります2.94867828828E+17
。によって解決されるnumber_format()
と、元の番号が得られます。
どうすれば正しい値を取得できますか?
これは、さまざまな数値で機能できる必要があります。
BCMath拡張機能がある場合は、これを使用できます。
$a = bcsub('294867828828426241', '1');
echo $a; // 294867828828426240
ただし、私の 64 ビット サーバーでテストすると、コードは正しく動作するはずです。よくわかりませんが、精度ディレクティブを増やすと違いが生じるかどうかを確認できますphp.ini
。私は14に設定しています。