将非十进制数转换为十进制数

问题描述:

我想知道(因为我目前不知道,也找不到答案)如何将没有小数点的数字转换为带有小数点的数字。将非十进制数转换为十进制数

这是我想要发生的事情。

Input   Output 
1.20   1.20 
1234   0.1234 
0.23456  0.23456 
4321   0.4321 

所以基本上我需要接受输入数(从表单域,变量或其他)PHP函数,并且如果一个整数加0(零点)到开始处。如果输入的数字已经有一个小数点保留(我以后会用number_format)。

这种简单的解决方案应该这样做。

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

你可以做这样的事情与is_float

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

表单域几乎不通过输入值我的解决方案。他们通常是字符串。和'is_float(“12.4”)'是'false'。 –

试试这个

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

表单字段很难传递键入的值。他们通常是字符串。和'is_float(“12.4”)'是'false'。 –

这里有没有跛脚字符串连接

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))'是一个昂贵的操作。 –