簡體   English   中英

如何在php中指定浮點數的位數?

[英]How to specify number of digits in a float number in php?

該數字是: 1234.56789或“ -1234.56789”

什么是php函數,指定我們之前有4位數字. 和后5位數字.

像這樣:

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

編輯:實際上,我想檢查此數字是否在(。)之前有4位,在(。)之后有5位。 如果是,則將其保存到數據庫中,否則,不將其保存在數據庫中。

在PHP中使用round()和一個額外的參數precision

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

EDIT :

非常感謝。 實際上,我想檢查該數字是否在(。)之前有4位數字,而在(。)之后有5位數字。 如果是,則將其保存到數據庫中,否則,不將其保存在數據庫中。

這個雖然有點怪。

<?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!";
}

我想我無法從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

?>

另一種使用字符串函數的解決方案來獲取小數點前后的位數

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM