我需要做这个相当奇怪的事情,让我说我有:
$number = rand(1, 9);
(这只是它可能是什么数字的一个例子,实际上我以完全不同的方式得到它)
现在我需要将这个数字“转换”为0.2
或我得到的任何数字,基本上它必须从0开始并且是float
类型的数字。
答案 0 :(得分:4)
PHP不支持变量声明中的显式类型转换。要按照您想要的方式将int
转换为float
,只需要除以10:
$number = rand(1, 9) / 10;
有关详细信息,请参阅PHP Type Juggling上的此页面。如果您混合floats
和ints
或其他类型,则会重新投放。 Exmple:
echo 10 + 2.5; // gives you 12.5, a float because of the types used
编辑: PHP确实有明确的type casting,而不是变量声明。但即使您将整数转换为浮点数,它也不会显示小数位。为此,请使用PHP的number_format
函数:
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 :(得分:0)
$ number =(float)rand(1,9)/ 10;
请参阅PHP类型转换。
答案 2 :(得分:0)
function Floatize(){
return (float) (rand(1, 9) / 10);
}
echo Floatize(); // will return something like 0.2 or 0.5 or 0.9