php.echonumber_format(88899626759579787, 0, '', '');のnumber_format関数について。 出力結果が 88899626759579792 になるのはなぜですか? 共有先: -----解決策--------------------------------私も初心者なので、Du Niang に尋ねると、形式が間違っていると言われました。 http://www.w3school.com.cn/php/func_string_number_format.aspより-----解決策------ - -ご使用の環境は 32 ビットである必要があるため、上記の数値 88899626759579787 を表すには浮動小数点型を使用する必要があり、浮動小数点型の精度は保証されません。 この例を通してそれを知ることができます echo PHP_INT_MAX; // php的整形能表示的最大整数 var_dump(number_format(88899626759579700, 0, '', '')); ログイン後にコピー-----解決策--------------------------------#1 を押してみましたか? 発言内容を変更してください -----解決策---------範囲外です、php long 型はそのような大きな正の数を表すことができません PHP 開発組織は、for Win の 64 ビット バージョンをリリースしたことがありません------解決策------ - 可能であれば、php5.4 にアップグレードすることをお勧めします。これは、php が 5.4 で json_decode にパラメータを追加したためです Quote5.4.0 options パラメータが追加されました。 JSON デコード オプションのビットマスクは現在、JSON_BIGINT_AS_STRING のみがサポートされています (デフォルトでは、大きな整数を float としてキャストします) $json = '12345678901234567890'; var_dump(json_decode($json)); var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING)); ?> 以上例程会输出: float(1.2345678901235E+19) string(20) "12345678901234567890" ログイン後にコピー アップグレードが不可能な場合は、最初に int の長さを超えるすべてのデジタル テキストに などの特別な識別子を追加することをお勧めします。 {"a":"12345678901234567890"} 正規表現を使用して に置き換えることができます {"a":"__12345678901234567890"} json_decode が完了したら、__ ロゴを削除します