浮動小数点数の出力形式の制御
浮動小数点数の出力と形式の制御は、sprintf の一般的に使用される関数であり、浮動小数点数は書式文字 "%f" と小数点以下 6 桁を使用して制御されます。ポイントはデフォルトで保持されます。例:
コードをコピーします コードは次のとおりです:
sprintf("%f", 3.1415926) //結果: "3.141593"
ただし、印刷される幅と小数点以下の桁数を自分で制御したい場合があります。この場合、「%m.nf」形式を使用する必要があります。ここで、m は印刷される数値の全体の幅を表し、n は印刷される数値の桁数を表します。小数点以下の数字。例:
コードをコピーします コードは次のとおりです:
sprintf(" %9.3f", 3.1415926); // 右揃え: 桁数が足りない場合は、スペースを使用して完成させます。結果: " 3.142"
sprintf(" %-9.3f", 3.1415926); //左揃え: 桁数が足りない場合は、スペースを使用して完成させます。結果: "3.142 "
sprintf(" %.3f", 3.1415926); // 合計幅を指定しない場合、結果: "3.142"
問題に注意してください
コードをコピーしてください コードは次のとおりです:
$num = 100;
sprintf("%.2f", $num );
sprintf("%.2f", (double)$num );
上記の 2 つの結果は本当に同じですか?見た目は同じですが、次の理由がわかりやすいかもしれません。パラメータがスタックにプッシュされるとき、呼び出し元は num に対応するフォーマット制御文字が "%f" であることを認識しません。関数が実行されるとき、関数自体はスタックにプッシュされたものが整数であることを認識していないため、整数 $num を格納する貧弱な 4 バイトが強制的に浮動小数点数形式として解釈され、全体がめちゃくちゃになります。 。
http://www.bkjia.com/PHPjc/825261.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/825261.html技術記事浮動小数点数の出力形式の制御 浮動小数点数の出力と形式の制御は、sprintf の一般的な関数です。デフォルトでは、小数点以下 6 桁が保持されます。 、次のような:...