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

Php 将非十进制数转换为十进制数,php,Php,我想知道(因为我现在不知道也找不到答案)如何把一个没有小数点的数字变成一个有小数点的数字 以下是我希望发生的事情 Input Output 1.20 1.20 1234 0.1234 0.23456 0.23456 4321 0.4321 所以基本上我需要一个PHP函数,它接受一个输入数字(来自一个表单字段、变量或任何东西),如果一个整数加0。(零点)到开头。如果输入的数字已经有一个保留的十进制形式(我将在后面使

我想知道(因为我现在不知道也找不到答案)如何把一个没有小数点的数字变成一个有小数点的数字

以下是我希望发生的事情

Input         Output
1.20          1.20
1234          0.1234
0.23456       0.23456
4321          0.4321

所以基本上我需要一个PHP函数,它接受一个输入数字(来自一个表单字段、变量或任何东西),如果一个整数加0。(零点)到开头。如果输入的数字已经有一个保留的十进制形式(我将在后面使用数字格式)。

您可以使用

试试这个

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

这个简单的解决方案应该可以做到这一点

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

这是我的解决方案,没有蹩脚的字符串连接

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

表单字段几乎不传递类型化的值。它们通常是细绳。而
is_float(“12.4”)
is
false
$num/pow(10,strlen($num))
是一个昂贵的操作。表单字段几乎不传递键入的值。它们通常是细绳。而
是浮点数(“12.4”)
false
。表单字段几乎不传递键入的值。它们通常是细绳。而
是浮点数(“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