2017-01-03 48 views
0

我需要檢查POST值是數字和格式良好。我預期的格式是檢查php後的值是數字和格式良好

number.number 
1.0 
11.5 

如果POST價值在於沒有.(DOT)只有1那麼我希望在PHP將其轉換成1.0

我想這個代碼,但它不工作。

$foo = '2'; 
$foo = preg_match('/\\d{2}\\:\\d{2}\\.\\d{2}/', $foo); 

謝謝:)

+0

使用'回聲number_format($ foo的,1);' – Thamilan

+0

不知道你多少個小數位處理,但number_format()可以工作 –

回答

0

工作代碼

//$value = '22'; 
$value = $_POST["input_value"]; 
if (is_numeric($value)) { 

    $new_value = number_format($value, 1); 

} else { 

    $new_value = "$value is not numeric. <br>"; 

} 

echo $new_value; 
0

你基本上要檢查是否從POST數組變量是浮點值/或雙不(浮動/雙處於x.x中的格式的類型的號碼)。

Cheking如果一個字符串是浮點/雙精度數

要做到這一點,使用這個PHP內置函數:is_double或更準確:is_float,會告訴你,如果該字符串是浮點/雙。

檢查一個字符串是否是一個整數,並將其轉換爲雙/浮點值

如果它不是一個雙,檢查它是否是一個整數(普通號):is_int,並且如果它確實是一個int ,使用number_format將其加倍,請看這裏的用法:integer to double/float in php

$final_value; 
$value = $_POST["wanted_value"]; 
if (is_float($value)) 
{ 
    $final_value = $value; 
} 
else if (is_int($value)) 
{ 
    $final_value = number_format($value, 1); // or 2 instead of 1 (2.0 or 2.00) 
} 
else 
{ 
    $final_value = "ERROR"; 
} 

希望這有助於!

相關問題