我只是想弄清楚如何获得在 php 中计算并格式化为小数点后 2 位的数字的实际数字。
所以说它计算为 45.76 我试图弄清楚如何从中获得 76 的 if 语句。 基本上我希望它看起来,只是说如果它是 00 然后删除它们,如果不是,请显示它们。
谢谢
尝试:
function showDecimals($v){
$n = abs($v);
$whole = floor($n);
$fraction = $n - $whole;
return $fraction > 0
}
和。。。
if (showDecimals(10.15)){
//Show
}else{
//Remove?
}
如果没有
小数位,您想显示一个整数,如果没有,则显示 2 位精度小数?
方法 1
function formatNumber($n) {
$n = round($n*100)/100;
return ''+$n;
}
这只是将其四舍五入到精度的小数点后 2 位。 零截断是自动的。
用法
echo formatNumber(0); //0
echo formatNumber(0.5); //0.5
echo formatNumber(0.894); //0.89
echo formatNumber(0.896); //0.9
echo formatNumber(1.896); //1.9
方法 2
或者,如果您将 1.9 显示为 1.90,我想这将起作用:
function formatNumber($n) {
if ($n == 0)
return ''+$n;
$str = ''.round($n*100)/100;
$dotpos = strrpos('.', $str);
if (strlen(substr($str, $dotpos+1)) === 2)
$str .= '0';
return $str;
}
用法:
echo formatNumber(0); //0
echo formatNumber(0.5); //0.50
echo formatNumber(0.894); //0.89
echo formatNumber(0.896); //0.90
echo formatNumber(1.896); //1.90
编辑:意外发布了方法2的损坏版本,现在应该修复。