【发布时间】:2012-12-08 09:30:53
【问题描述】:
当我使用 printf 时,
printf("%.2f zł", 20.4);
返回
20.40 zł9
但我想要
20.40 zł
当我使用sprintf("%.2f zł", 20.4) 时没有问题。
zł 是波兰货币符号。当我用“l”替换“ł”时,我仍然有这样的问题,所以看起来这与编码无关。
如何正确使用 printf 表示货币?
【问题讨论】:
-
看起来不是codepad.org/dAWs6yDQ
-
printf("%.2f %s", 20.4, 'zł');会产生同样奇怪的输出吗?我会测试,但由于某种原因我无法将 unicode 粘贴到我的 shell 中...... -
@Charles 是的,当我添加“zł”作为参数时,它会产生相同(错误)的输出。
-
考虑使用
number_format(),您可以在其中更改小数和千位分隔符以根据波兰标准进行调整。 -
感谢@dev-null-dweller,我使用了 number_format() 并且效果很好。我也可以使用“polish”分数分隔符(“,”而不是“.”)。