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