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