V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kmvan
V2EX  ›  PHP

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

  •  
  •   kmvan · 2014-09-12 15:58:25 +08:00 · 4092 次点击
    这是一个创建于 3514 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如
    ```php
    $num = 123456; // 12.3万
    echo sprintf('???万',$num);// 如果我想利用 sprintf 来输出 12.3万,那么应该怎么写?
    ```
    因为 sprintf 里面的字符是多国语言来的,中英文都不同,所以只能是用 sprintf 来弄了,但貌似sprintf 里面不能进行运算吧?那应该如何是好呢?
    6 条回复    2014-09-12 17:25:39 +08:00
    foccy
        1
    foccy  
       2014-09-12 16:03:41 +08:00   ❤️ 1
    善用搜索。
    sprintf('%.1f', 123456 / 10000)
    kmvan
        2
    kmvan  
    OP
       2014-09-12 16:15:57 +08:00 via Android
    问题是后面的变量$num不能变啊
    solupro
        3
    solupro  
       2014-09-12 16:28:07 +08:00   ❤️ 1
    @kmvan 这没变吧,只是产生了个临时变量。
    mahone3297
        4
    mahone3297  
       2014-09-12 16:33:48 +08:00   ❤️ 1
    1l说的很清楚了。。。
    $num也不会变。。。
    msg7086
        5
    msg7086  
       2014-09-12 16:58:48 +08:00   ❤️ 1
    123456到12.3要做运算。只用格式化做不了吧。
    kmvan
        6
    kmvan  
    OP
       2014-09-12 17:25:39 +08:00
    @foccy
    @solupro
    @mahone3297
    感谢三位大大回复。虽然不是根本方法,但我得到了启示,就是 除以10000(除数) 中的 10000 也作为一个中英文的翻译字符数字!因为英文无“万”,对应中文的 12.3万,只能用 123.4k 来代表。哈哈,问题解决!
    @msg7086 对,sprintf里不能做运算,但可以将除数作为翻译字符来处理!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2797 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:52 · PVG 11:52 · LAX 20:52 · JFK 23:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.