0

私はこのかなり奇妙なことをする必要があります、私が持っているとしましょう:

$number = rand(1, 9);

(これは数字の例にすぎません。実際には、まったく異なる方法で取得します)

そして今、私はその数値を「変換」する必要があり0.2ますfloat.

4

3 に答える 3

4

PHP は、変数宣言での明示的な型キャストをサポートしていません。単純に 10 で割る方法でintを aに変換するには:float

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

詳細については、 PHP Type Jugglingに関するこのページを参照してください。floatsとまたは他のタイプを混在intsさせると、再キャストされます。例:

echo 10 + 2.5; // gives you 12.5, a float because of the types used

編集: PHPには、変数宣言ではなく、明示的な型キャストがあります。ただし、整数を float としてキャストしても、小数点以下は表示されません。これを行うには、代わりに PHP のnumber_format関数を使用します。

echo number_format(10, 1); // gives you 10.0

編集 2: 単純に数値を 0 から 1 の間の 10 進数にしたい場合 (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
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 に答える
0

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

PHP の型キャストを参照してください。

于 2012-08-18T20:14:47.883 に答える