PHP 如何使用 sprintf() 的占位符来控制小数点?

2014-09-12 15:58:25 +08:00
 kmvan
例如
```php
$num = 123456; // 12.3万
echo sprintf('???万',$num);// 如果我想利用 sprintf 来输出 12.3万,那么应该怎么写?
```
因为 sprintf 里面的字符是多国语言来的,中英文都不同,所以只能是用 sprintf 来弄了,但貌似sprintf 里面不能进行运算吧?那应该如何是好呢?
4101 次点击
所在节点    PHP
6 条回复
foccy
2014-09-12 16:03:41 +08:00
善用搜索。
sprintf('%.1f', 123456 / 10000)
kmvan
2014-09-12 16:15:57 +08:00
问题是后面的变量$num不能变啊
solupro
2014-09-12 16:28:07 +08:00
@kmvan 这没变吧,只是产生了个临时变量。
mahone3297
2014-09-12 16:33:48 +08:00
1l说的很清楚了。。。
$num也不会变。。。
msg7086
2014-09-12 16:58:48 +08:00
123456到12.3要做运算。只用格式化做不了吧。
kmvan
2014-09-12 17:25:39 +08:00
@foccy
@solupro
@mahone3297
感谢三位大大回复。虽然不是根本方法,但我得到了启示,就是 除以10000(除数) 中的 10000 也作为一个中英文的翻译字符数字!因为英文无“万”,对应中文的 12.3万,只能用 123.4k 来代表。哈哈,问题解决!
@msg7086 对,sprintf里不能做运算,但可以将除数作为翻译字符来处理!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/133091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX