【问题标题】:thousand separator php千位分隔符php
【发布时间】:2013-02-25 13:55:26
【问题描述】:

我从数据库中提取了这个$number = 100000.5;
我需要的是格式化为100.000,5

str_replace + number_format 我猜到了。

我的替换工作完美,

echo str_replace('.', ',', $row['anskaf_sum']);

(返回:100000,5) 但是当我添加 number_format 时,我以某种方式失败了

number_format($row['anskaf_sum'] , 0, ',', '.');

返回

101 

我尝试了其他一些方法,但我似乎无法更接近我需要的答案

谢谢。

【问题讨论】:

    标签: php string number-formatting


    【解决方案1】:

    你确定你的 $row['anskaf_sum'] 没有持有你不期望的一些价值吗? 因为:

    <?php
            $number = 100000.5;
            echo number_format($number, 1, ",", ".");
    ?>
    

    ...这正是您想要的结果:100.000,5

    【讨论】:

    • 没看到 0 和 1 的小错误 :)
    • 但是,即使它是 0 仍然不应该产生你提到的 101 结果,而是 100.001 ;-)。我也回答了你的另一个问题,所以你可以看看。也许它可以解决您遇到的其他一些问题。
    • 延迟响应 - 但如果他已经完成了 str_replace 以将逗号注入数字,那么数字格式脚本在尝试格式化格式错误的数字时肯定会出现其他数字的问题。仅使用此处提到的 number_format 就足够了。