-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 回答