编程语言
首页 > 编程语言> > php – 从价格中删除无关零的有效方法?

php – 从价格中删除无关零的有效方法?

作者:互联网

我将价格存储到五位小数的精度,例如:

1.95000
2.25000
0.01150
2.10000
2.00000

显示价格时,我想显示标准的$X.XX格式,如果其余数字只是零,但如果有有效数字,那么我不想删除它们(所以我不能简单使用number_format()).

例如,上述价格应显示为:

1.95
2.25
0.0115
2.10
2.00

这个过程必须在每页数百个价格上完成.以这种方式格式化数字的有效方法是什么?

解决方法:

这有点难看,但它确实起作用:

function formatPrice($price) {
    $out = (float)$price; // Trim off right-hand 0's
    $out = "$out"; // Typecast back to string
    if ((strlen($out) - strpos($out, '.')) <= 2) { // Test for string length after decimal point
        $out = number_format($out, 2); // Format back with 0's
    }
    return $out;
}

现在测试…… Works!

由于@ FuzzyTree的回答,这是我的另一个评论中的单行函数:

function formatPrice($price) {
    return substr($price, 0, strpos($price, '.') + 3) . rtrim(substr($price, strpos($price, '.') + 3), '0');
}

标签:php,number-formatting
来源: https://codeday.me/bug/20190830/1767039.html