如何在 php 中获取 if 语句的小数位后的数字


How to get the numbers after the decimal place for an if statement in php

我只是想弄清楚如何获得在 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的损坏版本,现在应该修复。