2013-01-22 129 views
1

我想知道(因爲我目前不知道,也找不到答案)如何將沒有小數點的數字轉換爲帶有小數點的數字。將非十進制數轉換爲十進制數

這是我想要發生的事情。

Input   Output 
1.20   1.20 
1234   0.1234 
0.23456  0.23456 
4321   0.4321 

所以基本上我需要接受輸入數(從表單域,變量或其他)PHP函數,並且如果一個整數加0(零點)到開始處。如果輸入的數字已經有一個小數點保留(我以後會用number_format)。

回答

2

這種簡單的解決方案應該這樣做。

function to_decimal($in){ 
    return (stripos($in, ".")!==false)? $in: "0.".$in; 
} 
0

你可以做這樣的事情與is_float

if (!is_float($input)) 
{ 
    $result = "0." . $input 
} 
+0

表單域幾乎不通過輸入值我的解決方案。他們通常是字符串。和'is_float(「12.4」)'是'false'。 –

0

試試這個

function dPoint($number) 
{ 
    if(is_float($number)) 
    { 
    return $number; 
    } 
    else 
    { 
    return "0.".$number; 
    } 
} 
+0

表單字段很難傳遞鍵入的值。他們通常是字符串。和'is_float(「12.4」)'是'false'。 –

0

這裏有沒有跛腳字符串連接

function leadingZero($num) { 
    if (!ctype_digit($num)) { 
    return $num/pow(10, strlen($num)); 
    } 
    return $num; 
} 
// php> =leadingZero(4652) 
// 0.4652 
// php> =leadingZero(0.2) 
// 0.2 
+0

表單字段很難傳遞鍵入的值。他們通常是字符串。和'is_float(「12.4」)'是'false'。 –

+0

'$ num/pow(10,strlen($ num))'是一個昂貴的操作。 –

相關問題