-2

私がprintfを使用しているとき、

printf("%.2f zł", 20.4);

それは返す

20.40 zł9

でも私はしたい

20.40 zł

使用時sprintf("%.2f zł", 20.4)は問題ありません。

はポーランドの通貨記号です。「ł」を「l」に置き換えると、まだこのような問題が発生するため、エンコードとは関係ないようです。

通貨に printf を正しく使用するにはどうすればよいですか?

4

2 に答える 2

1

9 は別の印刷の結果ではなく、コード内でさらに発生していると確信していますか? この printf 行をコメントアウトして、9 がまだ残っているかどうかを確認してください。

ポリッシュ文字を通常の L に置き換えても問題が解決しない場合は、エンコーディングの問題ではないと正しく評価したことになります。

printf()sprintf()私が考えることができる唯一の違いは、結果を返す方法のようです。文字列を返しprintfながらHTMLバッファに出力します。sprintf

于 2012-12-08T09:39:38.790 に答える
1

わかった。

私が書いた:

echo printf(...);

代わりに:

printf(...);

printf() によって生成された文字列の後、printf によって返される値である文字列の長さを取得しました (実際には、123.45 値の場合は追加された数値は 9、20.4 の場合は数値 8 でした)。

于 2012-12-08T09:42:43.193 に答える