我需要做这个相当奇怪的事情,假设我有:
$number = rand(1, 9);
(这只是它可能是什么数字的一个例子,实际上我以完全不同的方式得到它)
现在我需要将该数字“转换”为0.2
我得到的任何数字,基本上它必须以 0 开头并且是一种float
数字。
我需要做这个相当奇怪的事情,假设我有:
$number = rand(1, 9);
(这只是它可能是什么数字的一个例子,实际上我以完全不同的方式得到它)
现在我需要将该数字“转换”为0.2
我得到的任何数字,基本上它必须以 0 开头并且是一种float
数字。
PHP 不支持在变量声明中显式类型转换。要以您想要简单地除以 10 的方式将 转换int
为 a :float
$number = rand(1, 9) / 10;
有关更多信息,请参阅PHP 类型杂耍的此页面。如果您混合floats
和ints
/或其他类型,它们将被重新铸造。示例:
echo 10 + 2.5; // gives you 12.5, a float because of the types used
编辑: PHP 确实有明确的类型转换,只是没有在变量声明中。但即使您将整数转换为浮点数,它也不会显示小数位。为此,请改用 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
。
$number=(float)rand(1, 9)/10;
请参阅 PHP 类型转换。
function Floatize(){
return (float) (rand(1, 9) / 10);
}
echo Floatize(); // will return something like 0.2 or 0.5 or 0.9