Position actuelle: Accueil> Derniers articles> Utilisez Strval pour convertir les nombres flottants et conserver le nombre spécifié de décimales

Utilisez Strval pour convertir les nombres flottants et conserver le nombre spécifié de décimales

gitbox 2025-05-26

1. Utilisez strval () pour convertir directement

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.


2. Utilisez numéro_format () pour formater d'abord, puis convertir avec strval ()

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.


3. Mélanger le format Sprintf () puis convertir avec strval ()

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.


4. Personnalisez la fonction, premier tour () , puis convertissez-la en chaîne

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&#39;aucun zéro n&#39;est ajouté
?>

Ici, Round () assure la précision de la valeur numérique, mais ne remplit pas automatiquement les zéros aux décimales.


5. Une méthode combinée qui conserve le nombre de décimales et remplit automatiquement les zéros

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"
?>

Résumer

  • 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.