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"
?>
번호_Format () 자체는 문자열을 반환합니다. 여기서 strval () 의 포장은 질문의 요구 사항을 충족시키는 것이지만 실제로는 필요하지 않습니다.
Sprintf () 는 또한 문자열을 형식화하는 일반적인 방법이며, 소수점 이하 자리의 수를 유연하게 지정할 수 있습니다.
<?php
$num = 3.1415926;
$formatted = sprintf("%.3f", $num); // 예약하다3십진수,리턴 문자열
echo strval($formatted); // 산출 "3.142"
?>
마찬가지로 Sprintf ()는 문자열을 반환하고 strval ()을 사용하는 것은 불필요한 래퍼입니다.
때로는 라운드 () 함수를 사용하여 소수점을 먼저 처리 한 다음 문자열로 변환하려고합니다.
<?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",0이 추가되지 않습니다
?>
여기서 Round ()는 수치 값의 정확도를 보장하지만 소수점 이하의 0을 자동으로 채우지는 않습니다.
고정 된 소수점을 유지하고 0을 자동으로 보충 해야하는 경우 가장 간단한 방법으로 숫자 _format ()를 사용할 수 있습니다.
<?php
$num = 3.1;
echo strval(number_format($num, 3)); // 산출 "3.100"
?>
Straval () 직접 변환은 소수점 이하 자리의 수를 제어 할 수 없습니다.
숫자를 number_format () 또는 sprintf () 로 포맷하는 것이 좋습니다. 먼저 지정된 소수점 번호의 문자열을 가져온 다음 strval () 로 랩핑하는 것이 좋습니다 (실제로 래핑하지 않아도됩니다).
Round ()는 반올림에 사용할 수 있지만 자동으로 0을 보충하지는 않습니다.
최종 방법은 제로 보상이 필요한지 여부와 형식 요구 사항에 따라 결정됩니다.