如何在php中指定浮点数中的位数?

时间:2014-02-18 06:15:31

标签: php function double digits

号码是:1234.56789或者可能是'-1234.56789'

指定我们在.之前有4位数而在.之后有5位数的php函数是什么?

这样的事情:

intNumber(1234.56789);   //4
floatNumber(1234.56789); //5

编辑: 其实我想检查这个数字在(。)之前是4位数还是在(。)之后是5位数。如果是,我将其保存到数据库,如果没有,我不将其保存在数据库中。

3 个答案:

答案 0 :(得分:3)

使用PHP中的round()和一个名为precision的额外参数。

<?php
echo round(1234.56789,4); //"prints" 1234.5679
                    //^--- The Precision Param

<强> EDIT :

  

非常感谢。其实我想检查这个数字是否有4位数   在(。)之后和(。)之后的5位数。如果是,我将其保存到数据库,并且   如果没有,我不会将其保存在数据库中。

虽然这个有点hacky ..

<?php

function numberCheck($float)
{
    $arr=explode('.',$float);
    if(strlen(trim($arr[0],'-'))==4 && strlen($arr[1])==5)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

if(numberCheck(1234.56789))
{
    echo "You can insert this number !";
}
else
{
    echo "Not in the correct format!";
}

答案 1 :(得分:1)

我想我无法从number_format得到我想要的东西,所以我做了这个并且它工作正常:

public function floatNumber($number)
 {
      $number_array = explode('.',$number);
      $left = $number_array[0];
      $right = $number_array[1];
      return number_format($number,strlen($right));
 }

number_format()示例:

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

答案 2 :(得分:1)

使用字符串函数获取小数点前后的数字的另一种解决方案

$num = 1234.43214;
$aftDecimal = strlen(substr(strrchr($num, "."), 1));
$befDecimal = strlen($num)- ($aftDecimal+1);