简单的圆函数不会围绕

时间:2016-07-12 13:07:57

标签: php rounding

我试图在小数点后将一个值舍入到8个符号但它不会绕任何东西。例如:

12/653.44
result: 0.018364348677767

我想在,之后舍入并输出8个符号。 这是功能:

public static function getUSDRate()
{
  $urldata = get_curl_content('https://example.com/');
  $rates = json_decode($urldata, TRUE);
  if (!$rates) {
        return '-';
  }
  $usdRate = $rates['USD']['sell'];
    if (!$usdRate) {
        return '-';
    }
    return round($usdRate, 8);
}

函数调用:$singles->price/getUSDRate() 然后,当我调用该函数时,它回显整数......

1 个答案:

答案 0 :(得分:4)

如果希望结果只有8位小数,则应使用:

echo round($singles->price/getUSDRate(), 8);

根据您问题中的信息,我们可以看到您过早地进行四舍五入,因为您稍后会执行更多计算。您可以从getUSDRate()函数中删除舍入。

如果要在显示的数字中得到8位小数,则必须在所有计算后执行舍入。您可以修改getUSDRate()函数以包含舍入:

public static function getUSDRate($value)
{
  $urldata = get_curl_content('https://example.com/');
  $rates = json_decode($urldata, TRUE);
  if (!$rates) {
        return '-';
  }
  $usdRate = $rates['USD']['sell'];
    if (!$usdRate) {
        return '-';
    }
    return round($value/$usdRate, 8);
}

echo getUSDRate($singles->price);

注意:getUSDRate函数的声明表明它是类的一部分。在这种情况下,对此静态函数的调用应为:

echo YOUR_CLASS_HERE::getUSDRate($singles->price);