6

簡単な質問があります。

エコーする必要があるこの7310093341976450848番号がありますが、エコーするとこれが得られます7.3100933419765E+18

私は試した

エコー (文字列)$データ;
それを文字列にキャストしてから出力しますが、それでも同じ結果が得られます。

数値は、最初はタイプdoubleです。

4

2 に答える 2

5
I've this 7310093341976450848 number which I needed to echo.
The number is initially of type double.

PHP で使用される浮動小数点表現のため、double として格納されると、その正確な数値を出力することはできなくなります。

これは、値を出力する (多くの) 方法の 1 つです。

printf("%.0f", $data);
echo number_format($data, 0, '', '');

精度を失いたくない場合は、文字列として保存するか、任意精度ライブラリの 1 つを使用します: BC Math / GMP

于 2012-07-07T18:02:55.067 に答える
0

number_format()を使用します。方法は次のとおりです。

echo number_format( $data, 0, '', '' );
于 2012-07-07T17:58:16.357 に答える