将小数位数固定为5,并在2位小数后删除零

时间:2016-08-29 14:47:12

标签: php

我在这个PHP变量中有一个值:

$var='2.533333345';
echo $var;

我想要的是删除5位数后的所有小数点。

现在变量的值将是

$var='2.53333';
echo $var

另外,如果$var ='2.500000000';,我只需要$var = '2.50';。我需要在2位小数后删除零。

4 个答案:

答案 0 :(得分:0)

你可以使用number_format函数

$var  = number_format(2.533333345, 5)

在第一个参数中,将数字传递给第二个小数位数。

这个函数需要更多有用的参数,你可以在这里的php文档中查看:http://php.net/manual/es/function.number-format.php

答案 1 :(得分:0)

您正在寻找的是number_format

数字格式需要两个参数,第一个是格式化的数字(或包含该数字的变量)。第二个是要输出的小数位数。任何额外的小数都将被删除。

要格式化输出数字,请使用以下内容:

<?php
$var = 2.533333345;
echo number_format($var,5);
?>

此代码将输出: 2.53333

答案 2 :(得分:0)

这是一种方法。

首先,修剪所有尾随零。

$var = rtrim($var, '0');

然后,获取小数点后的字符串。

$decimal = explode('.', $var)[1];

根据小数点后的非零位数,应用不同的数字格式。

if (strlen($decimal) > 2) {
    // display five decimal places for numbers without trailing zeroes
    $var = number_format((float) $var, 5, '.', '');
} else {
    // display two decimal places for numbers with only zeroes past two places
    $var = number_format((float) $var, 2, '.', '');
}

答案 3 :(得分:-1)

@Yeldho Paul我已经完成了与此相关的功能。希望这会帮助你。

echo cleanNumber('2.533333345')."<br/>";

echo cleanNumber('2.500000000')."<br/>";


function cleanNumber($val){
  $val = floatval($val);

  if(strstr($val,".")){
      list($before_dot, $after_dot) = explode('.', $val);

      if(strlen($after_dot)==1){
          $val = $val."0";  
      }
      elseif(strlen($after_dot)>=6){
           $val = number_format($val, 5, '.', '');    
      }     


    }else{
      $val = $val.".00";
    }
  return $val;
}