0

株価指数の変化を表示するためにこれを行いたい:

12 => +12.00
150.5 => +150.50
-30.2 => -30.20
-2.85193 => -2.85

私はこれを持っています:

sprintf("%+d", number_format(floatval($key), 2, '.', ','))

しかし、フォーマットされた数値から小数を取り除き、のようなものを返してい+45ます。

+ 記号と小数の両方を取得する効率的な方法はありますか?

4

1 に答える 1

4

%dは整数用です%f。浮動小数点に使用する必要があります。

sprintf("%+.2f", $key);

残念ながら、これではコンマを取得できません。また%d、引数を整数として解析し、コンマに達すると数値の読み取りを停止するため、元のコードでは機能しませんでした。

記号とカンマの両方が必要な場合は、次のようにします。

($key >= 0 ? '+' : '') . number_format(floatval($key), 2, '.', ','))
于 2013-07-11T03:21:24.307 に答える