kmvan
V2EX  ›  PHP

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

  •  
  •   kmvan · Sep 12, 2014 · 5070 views
    This topic created in 4436 days ago, the information mentioned may be changed or developed.
    例如
    ```php
    $num = 123456; // 12.3万
    echo sprintf('???万',$num);// 如果我想利用 sprintf 来输出 12.3万,那么应该怎么写?
    ```
    因为 sprintf 里面的字符是多国语言来的,中英文都不同,所以只能是用 sprintf 来弄了,但貌似sprintf 里面不能进行运算吧?那应该如何是好呢?
    6 replies  •  2014-09-12 17:25:39 +08:00
    foccy
    foccy
    Sep 12, 2014❤️1
    1
    善用搜索。
    sprintf('%.1f', 123456 / 10000)
    kmvan
    kmvan
    OP
    Sep 12, 2014 via Android
    2
    问题是后面的变量$num不能变啊
    solu
    solu
    Sep 12, 2014❤️1
    3
    @kmvan 这没变吧,只是产生了个临时变量。
    mahone3297
    mahone3297
    Sep 12, 2014❤️1
    4
    1l说的很清楚了。。。
    $num也不会变。。。
    msg7086
    msg7086
    Sep 12, 2014❤️1
    5
    123456到12.3要做运算。只用格式化做不了吧。
    kmvan
    kmvan
    OP
    Sep 12, 2014
    6
    @foccy
    @solupro
    @mahone3297
    感谢三位大大回复。虽然不是根本方法,但我得到了启示,就是 除以10000(除数) 中的 10000 也作为一个中英文的翻译字符数字!因为英文无“万”,对应中文的 12.3万,只能用 123.4k 来代表。哈哈,问题解决!
    @msg7086 对,sprintf里不能做运算,但可以将除数作为翻译字符来处理!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1706 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    ♥ Do have faith in what you're doing.