strval()の基本的な使用法は、浮動小数点数を文字列に直接変換することですが、すべてのかなりの数の浮動小数点数を保持し、小数点以下の場所の数を制限することはできません。
<?php
$num = 3.1415926;
echo strval($num); // 出力 "3.1415926"
?>
単純ですが、小数点以下の場所がいくつ保持されるかを制御できません。
number_format()は、数字のフォーマットに特別に使用され、小数点以下の場所の数を指定できる内蔵PHP関数です。
<?php
$num = 3.1415926;
$formatted = number_format($num, 2); // 予約する2位小数,結果は文字列です
echo strval($formatted); // 出力 "3.14"
?>
number_format()自体は文字列を返します。 Strval()のラッピングは、質問の要件を満たすためですが、実際には必要ありません。
sprintf()は、文字列をフォーマットするための一般的な方法でもあり、予約済みの小数点以下の場所を柔軟に指定できます。
<?php
$num = 3.1415926;
$formatted = sprintf("%.3f", $num); // 予約する3位小数,文字列を返します
echo strval($formatted); // 出力 "3.142"
?>
同様に、 sprintf()は文字列を返し、 strval()を使用することは不要なラッパーです。
場合によっては、 Round()関数を使用して最初に小数点を処理し、次に文字列に変換する必要があります。
<?php
function floatToString($num, $decimals) {
$rounded = round($num, $decimals);
return strval($rounded);
}
echo floatToString(3.1415926, 2); // 出力 "3.14"
echo "\n";
echo floatToString(3.1000, 2); // 出力 "3.1",ゼロは追加されていないことに注意してください
?>
ここでは、 round()は数値の正確性を保証しますが、小数点のゼロを自動的に埋めません。
固定小数点を保持し、ゼロを自動的に補う必要がある場合は、 number_format()を最も簡単な方法として使用できます。
<?php
$num = 3.1;
echo strval(number_format($num, 3)); // 出力 "3.100"
?>
straval()直接変換は小数点以下の場所の数を制御できません。
指定された10進数で文字列を取得して、 strval()でwrapして、 number_format()またはsprintf()を使用して数字をフォーマットすることをお勧めします(実際、ラップしないでください)。
round()は丸めに使用できますが、ゼロを自動的に補うことはできません。
最終的な方法は、ゼロ修飾が必要かどうか、およびフォーマット要件に基づいて決定されます。