Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,将任意数字转换为浮点0.x_Php - Fatal编程技术网

PHP,将任意数字转换为浮点0.x

PHP,将任意数字转换为浮点0.x,php,Php,我需要做一件很奇怪的事情,比如说我有: $number = rand(1, 9); (这只是一个数字的例子,实际上我是以完全不同的方式得到的) 现在我需要将这个数字“转换”为0.2或者我得到的任何数字,基本上它必须以0开头,并且是一个float类型的数字 参见PHP类型转换。$number=(float)rand(1,9)/10 请参阅PHP类型转换。PHP不支持变量声明中的显式类型转换。要将int转换为float,只需除以10即可: $number = rand(1, 9) / 10; 有

我需要做一件很奇怪的事情,比如说我有:

$number = rand(1, 9);
(这只是一个数字的例子,实际上我是以完全不同的方式得到的)

现在我需要将这个数字“转换”为
0.2
或者我得到的任何数字,基本上它必须以0开头,并且是一个
float
类型的数字

参见PHP类型转换。

$number=(float)rand(1,9)/10


请参阅PHP类型转换。

PHP不支持变量声明中的显式类型转换。要将
int
转换为
float
,只需除以10即可:

$number = rand(1, 9) / 10;
有关详细信息,请参阅上的此页。如果混合使用
浮动
整数
或其他类型,它们将被重新铸造。例如:

echo 10 + 2.5; // gives you 12.5, a float because of the types used
Edit:PHP确实有显式的,只是没有在变量声明中。但即使将整数转换为浮点,也不会显示小数点。要做到这一点,请改用PHP函数:

echo number_format(10, 1); // gives you 10.0
编辑2:如果您只想将数字设置为0到1之间的十进制(例如2变为0.2,25变为0.25等),您可以使用以下功能:

function getNumAsDecimal($num) {
    return ($num / pow(10, strlen((string)$num)));
}

因此
getNumAsDecimal(2)
将返回
0.2

PHP不支持变量声明中的显式类型转换。要将
int
转换为
float
,只需除以10即可:

$number = rand(1, 9) / 10;
function Floatize(){
    return (float) (rand(1, 9) / 10);
}

echo Floatize(); // will return something like 0.2 or 0.5 or 0.9
有关详细信息,请参阅上的此页。如果混合使用
浮动
整数
或其他类型,它们将被重新铸造。例如:

echo 10 + 2.5; // gives you 12.5, a float because of the types used
Edit:PHP确实有显式的,只是没有在变量声明中。但即使将整数转换为浮点,也不会显示小数点。要做到这一点,请改用PHP函数:

echo number_format(10, 1); // gives you 10.0
编辑2:如果您只想将数字设置为0到1之间的十进制(例如2变为0.2,25变为0.25等),您可以使用以下功能:

function getNumAsDecimal($num) {
    return ($num / pow(10, strlen((string)$num)));
}

所以
getNumAsDecimal(2)
将返回
0.2

输入值是否始终在1和9之间?我希望这会让你感觉良好,Linas。输入值是否始终在1和9之间?我希望这会让你感觉良好,Linas。>这只是一个数字的示例,事实上,我是以完全不同的方式得到它的。我的答案和所有其他答案是一样的。我也是第一个。然而,一位版主出于粗鲁删除了我的评论,但留下了“你没有读到问题”的评论。我还在做什么?有人可以禁止我了吗?>这只是一个例子,它可能是什么数字,在现实中,我得到它在完全不同的方式我的答案是相同的所有其他答案。我也是第一个。然而,一位版主出于粗鲁删除了我的评论,但留下了“你没有读到问题”的评论。我还在做什么?有人能禁止我吗?- 1 PHP有明确类型的铸造,类似于C++类型的铸造。为了清晰而编辑。我的意思是它在变量声明中不支持它。@Tiberiu IonuțuțStan,PHP显式类型转换不起作用(-1)。运算符&这类重写,尤其是使用数字。看看显式强制转换字符串是如何自动变为浮点数的:echo(字符串)“658498798798789798798787897'==(字符串)“6584987987987897987987896'?”true':'false';//返回比较运算符在比较之前正在进行转换的True。铅字铸造工作得很好。请尝试===运算符。此外,布尔输出“”上的回声;)-1 PHP具有显式类型的铸造,类似于C++类型的铸造。我的意思是它在变量声明中不支持它。@Tiberiu IonuțuțStan,PHP显式类型转换不起作用(-1)。运算符&这类重写,尤其是使用数字。看看显式强制转换字符串是如何自动变为浮点数的:echo(字符串)“658498798798789798798787897'==(字符串)“6584987987987897987987896'?”true':'false';//返回比较运算符在比较之前正在进行转换的True。铅字铸造工作得很好。请尝试===运算符。此外,布尔输出“”上的回声;)
function Floatize(){
    return (float) (rand(1, 9) / 10);
}

echo Floatize(); // will return something like 0.2 or 0.5 or 0.9