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

时间:2012-08-18 20:12:13

标签: php

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

$number = rand(1, 9);

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

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

3 个答案:

答案 0 :(得分:4)

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

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

有关详细信息,请参阅PHP Type Juggling上的此页面。如果您混合floatsints或其他类型,则会重新投放。 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