2012-02-08 7 views
0

「汚れた」数字を適切に書かれた通貨価格に変換したいと思います。 入力された数字は23.99000のようなものになり、私は23,99 +ユーロ記号を表示したいと思います。PHP number_format()10進数.99が0.00に変更されました

私はこれを使用します。

$price = number_format($price, 2, ',', '')." €"; 

をしかし、結果ではなく、23,99€の23,00€となります。

何が間違っていますか?ありがとう!

+0

おそらく悪い丸めです。操作の前に '$ price'の正確な内容を表示してください。 – iblue

+2

'$ price'とは何ですか?フロート?文字列? 'var_dump($ price)'を表示してください。 – deceze

+0

価格は$ price = 23.99000と正確に定義されています –

答えて

0

なぜ単にラウンドを使用しないのですか?

$price = round($price, 2)." €"; 
+0

ありがとうございますが、私はヨーロッパの小数点記号、すなわちドットの代わりにカンマを使用する必要があります。 –

+0

...小数点の区切り記号としてカンマを使用できない場合がありますか? – paxdiablo

+0

いいえ、私は入力された数字がanglosaxon(ドット)小数点記号であることを意味し、それをヨーロッパ(カンマ)小数点記号に変換する必要があります。これが私がround()の代わりにnumber_formatを使用した理由です –

4

このような何かを試してみてください:

<?php 
$price = 23.99000; 
$price = sprintf("%01,2f", $price).' &euro;'; 
echo $price; 

出力:

23,99 € 

fは、floatとして文字列を扱い、それに応じてフォーマットします意味します。

+0

ありがとう、しかし、以下に述べるように、私はまた、ドット1ではなく、カンマ小数点区切り記号を使用する必要があります:)私はこれを解決した、私は誤ってnumber_formatting間違った変数)。 –

+0

ああ、申し訳ありませんが、コードを編集して反映させました。 '.'を'、 '、simplesに変更するだけでした。 – Nick

関連する問題