ポイント-小数点のどの記号がデフォルトでPHPを使用し、構成できますか?
number_format
を使用して、10進数をさまざまな形式で表示しています(地域の構成に応じた価格,,など{-code-9 }). money_format
.よりも好きです。いずれの場合も,number_formatはテキストの量を表示する,たとえば,たとえば,米国の場合は$1,203.56
を表示します。{-code -4}
ヨーロッパの場合.もちろん,アイテムの価格の合計の内部計算,など.{-code-8 }私はnumber_format
を使用して価格を丸めます,割引,など.そして私は
number_format($ price * amount- $ discounts . . . , 2 {-code-8 } "." , "");
これが正しく、すべての値が完全に追加されることを理解しています,そして最終結果の小数点以下2桁に制限されます.これをデータベースに保存します,そして後で,ナビゲーター画面,に各ケースのnumber_format
バージョンが表示されます(テキスト).しかし、私はそれが心配です私のサーバー,は構成を変更する可能性があり、突然PHPは ,
を小数点として使用します,計算された量を混合しますか?それは可能ですか、それとも常に小数点として .
の科学的記数法を使用し、数値の計算に千単位の区切り文字を使用しないことを保証しますか? PHPが型付けされていないので心配です,したがって、 number_format
の「型」は文字列です.{にもキャストする必要があります-code-11}
?私が行ったテストは問題ありませんが、何かがうまくいかないのではないかと心配しています.
答え :
解決策:
心配するのは当然です。そのため、数値をフォーマットされた文字列ではなく、生の数値形式でストレージに保存する必要があります。計算は、文字列表現のリバースエンジニアリングから得られた値ではなく、数値に対して実行する必要があります。
したがって、数値を DECIMAL
に格納します(または、さらに良いことに、値をセント単位で INT
列に格納します)、ビューで数値をフォーマットします。
<?php echo '$'.number_format($price); ?>
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。