php - 从存储的十进制打印可读成本

标签 php decimal number-formatting

PHP 是否可以显示 2(或 x)位小数,但如果是整数则不显示 .00?

我看过number_format ,但它看起来并不完全符合这个要求。虽然我希望每 3 个非小数位有一个逗号

34.00  => 34
34.7   => 34.70
12424.9=> 12,424.90

我的数字在数据库中存储为带 2 个小数位的 float ,所以我不一定需要它

最佳答案

您可以先检查它是否为整数,使用 floor() 四舍五入并检查它是否等于完整的十进制版本。

echo (floor($cost) == $cost) ? floor($cost) : number_format($cost, 2, '.', ',');

if (floor($cost) == $cost) {
    echo floor($cost);
}
else {
    echo number_format($cost, 2, '.', ',');
}

另一种选择是使用 money_format() :

echo (floor($cost) == $cost) ? floor($cost) : money_format('%.2n', $cost);

if (floor($cost) == $cost) {
    echo floor($cost);
}
else {
    echo money_format('%.2n', $cost);
}

关于php - 从存储的十进制打印可读成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885996/

相关文章:

php - Flash MP3 播放器和 php/mysql

php - 想要合并两个 sql 查询以获得共同的结果

php - 如何更改 .xml 文件中 cdata 的值,然后再次使用 php 保存它

php - HTML 表单不会发布数据($_POST[] 为空)

c# - 使用带小数的指数

c++ - 从 C++ 中的任何类型的文件中读取字节及其十进制值

php - Smarty 上的价格数字格式

grails - Grails JSON API本地化数字分隔符

c# - 将数字对象转换为格式化数字

javascript - 带有逗号和小数的正确 JS 货币格式