0

我需要做这个相当奇怪的事情,假设我有:

$number = rand(1, 9);

(这只是它可能是什么数字的一个例子,实际上我以完全不同的方式得到它)

现在我需要将该数字“转换”为0.2我得到的任何数字,基本上它必须以 0 开头并且是一种float数字。

4

3 回答 3

4

PHP 不支持在变量声明中显式类型转换。要以您想要简单地除以 10 的方式将 转换int为 a :float

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

有关更多信息,请参阅PHP 类型杂耍的此页面。如果您混合floatsints/或其他类型,它们将被重新铸造。示例:

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

于 2012-08-18T20:17:33.470 回答
0

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

请参阅 PHP 类型转换。

于 2012-08-18T20:14:47.883 回答
0
function Floatize(){
    return (float) (rand(1, 9) / 10);
}

echo Floatize(); // will return something like 0.2 or 0.5 or 0.9
于 2012-08-18T20:22:31.820 回答