L'utilisation de base de Strval () est de convertir directement les nombres de points flottants en chaînes, mais il conserve tous les nombres significatifs de nombres de points flottants et ne peut pas limiter le nombre de décimales.
<?php
$num = 3.1415926;
echo strval($num); // Sortir "3.1415926"
?>
Bien que simple, il n'a aucun contrôle sur le nombre de décimales conservées.
Number_Format () est une fonction PHP intégrée spécialement utilisée pour formater les nombres et peut spécifier le nombre de décimales.
<?php
$num = 3.1415926;
$formatted = number_format($num, 2); // réserve2Numéro décimal,Le résultat est une chaîne
echo strval($formatted); // Sortir "3.14"
?>
numéro_format () lui-même renvoie une chaîne. L'emballage de Strval () est ici pour répondre aux exigences de la question, mais ce n'est en fait pas nécessaire.
Sprintf () est également une méthode courante pour la mise en forme des chaînes et peut spécifier de manière flexible le nombre de décimales réservées.
<?php
$num = 3.1415926;
$formatted = sprintf("%.3f", $num); // réserve3Numéro décimal,Chaîne de retour
echo strval($formatted); // Sortir "3.142"
?>
De même, sprintf () renvoie une chaîne et l'utilisation de strval () n'est qu'un wrapper inutile.
Parfois, nous voulons utiliser la fonction rond () pour traiter d'abord le point décimal, puis le convertir en une chaîne.
<?php
function floatToString($num, $decimals) {
$rounded = round($num, $decimals);
return strval($rounded);
}
echo floatToString(3.1415926, 2); // Sortir "3.14"
echo "\n";
echo floatToString(3.1000, 2); // Sortir "3.1",Notez qu'aucun zéro n'est ajouté
?>
Ici, Round () assure la précision de la valeur numérique, mais ne remplit pas automatiquement les zéros aux décimales.
Si vous devez garder une décimale fixe et compenser automatiquement les zéros, vous pouvez utiliser numéro_format () comme moyen le plus simple:
<?php
$num = 3.1;
echo strval(number_format($num, 3)); // Sortir "3.100"
?>
La conversion directe de Straval () ne peut pas contrôler le nombre de décimales.
Il est recommandé de formater les nombres avec numéro_format () ou sprintf () d'abord pour obtenir une chaîne avec un numéro décimal spécifié, puis l'envelopper avec strVal () (en fait, il est normal de ne pas l'envelopper).
Round () peut être utilisé pour l'arrondi, mais ne compense pas automatiquement les zéros.
La méthode finale est déterminée selon que le complément zéro est requis et les exigences du format.