0

入力の形式に関係なく、PHP を使用してそれを変更しようとしているので、出力は常に一貫しており、小数点以下 2 桁に丸められ、ドル記号が付いています。私のアプローチでは常に望ましい結果が得られるわけではありません。誰かがより堅牢なソリューションを考え出すのを手伝ってくれるかどうか疑問に思っていました。

望ましい出力:

$num = "$12.00"; //output   $12.00
$num = "125"; //output   $125.00
$num = "$300"; //output   $300.00
$num = "17.5"; //output   $17.50
$num = "1,777.5"; //output   $1777.50

私が試したことですが、これはすべてのケースで機能するとは限りません:

$num = "$" . str_replace("$", "", round($num,0)) . ".00";

アドバイスをいただければ幸いです。よろしくお願いします!

4

1 に答える 1

1
$num =  "$" . str_replace("$", "", round($num,0));

この行では、$ 記号を削除する前に丸めます。私は逆でなければなりません:

$num =  "$" . round(str_replace("$", "", $num),0);

編集:必要な出力を取得するには、 round() の代わりに number_format() を使用することをお勧めします

$num =  "$" . number_format(str_replace("$", "", $num),2, '.', '');
于 2013-09-14T22:53:20.283 に答える