W3docs

doubleval()

Apprenez à utiliser doubleval() en PHP pour convertir une valeur en float. Syntaxe, valeurs de retour et règles d'analyse des chaînes.

Introduction

La fonction doubleval() convertit une valeur en float (un nombre avec une partie décimale). C'est un alias exact de floatval() — les deux fonctions partagent la même implémentation. Ce nom existe parce que PHP appelait historiquement le type virgule flottante « double », et en PHP float et double désignent le même type.

On utilise doubleval() (ou floatval()) lorsqu'on dispose d'une valeur de type inconnu ou mixte — typiquement une string provenant d'un formulaire, d'une query string ou d'un fichier — et qu'on a besoin d'un nombre fiable pour effectuer des calculs.

Syntaxe

doubleval(mixed $value): float

$value est la valeur à convertir. Il peut s'agir d'une string, d'un entier, d'un boolean ou d'un autre scalaire. La fonction renvoie la valeur float de $value, ou 0.0 lorsque la valeur ne peut pas être interprétée comme un nombre.

Valeurs de retour

La façon dont doubleval() traite une valeur dépend de son type :

  • String numérique — analysée jusqu'au premier caractère non numérique ("3.14"3.14).
  • Entier / float — renvoyé en tant que float (4242.0 en interne).
  • Booleantrue1.0, false0.0.
  • null0.0.
  • String non numérique0.0.
  • Array1.0 pour un array non vide, 0.0 pour un array vide (avec un avertissement). Évitez de passer des arrays.

Exemple de base

php— editable, runs on the server

Notez que la sortie affiche 42 et 1, et non 42.0 et 1.0. Les valeurs sont des floats, mais echo affiche un float sans partie fractionnaire sans le .0 final. Pour voir le type float explicitement, utilisez var_dump() :

<?php
var_dump(doubleval(42));     // float(42)
var_dump(doubleval(true));   // float(1)
var_dump(doubleval("3.14")); // float(3.14)
?>

Analyse des strings avec des nombres en tête

doubleval() lit la partie numérique de début d'une string et s'arrête au premier caractère qui ne peut pas faire partie d'un nombre. Les espaces en début de string sont ignorés, et la notation scientifique est prise en charge.

<?php
echo doubleval("12.5kg") . "\n";   // 12.5  (stops at "k")
echo doubleval("  7.0  ") . "\n";  // 7     (leading spaces ignored)
echo doubleval("1.2e3") . "\n";    // 1200  (scientific notation)
echo doubleval("abc12") . "\n";    // 0     (no leading number)
?>

Cela facilite l'extraction d'un nombre depuis une string avec unité, mais cela signifie aussi qu'une valeur malformée devient silencieusement 0.0 sans générer d'erreur — validez d'abord si cette distinction a de l'importance.

doubleval() vs. cast (float)

Pour les valeurs scalaires, doubleval($x) et (float) $x produisent le même résultat, c'est pourquoi le cast est généralement préféré dans le code moderne. doubleval() reste pratique en tant que callback, par exemple avec array_map() :

<?php
$inputs = ["1.5", "2", "3.75kg"];
$floats = array_map('doubleval', $inputs);
print_r($floats);
// Array ( [0] => 1.5 [1] => 2 [2] => 3.75 )
?>

doubleval() vs. floatval()

Il n'y a aucune différence fonctionnelledoubleval() est un alias défini de floatval(). Le code moderne devrait préférer floatval() car le nom est plus clair et correspond au nom du type float utilisé partout ailleurs en PHP.

Conclusion

doubleval() convertit n'importe quelle valeur scalaire en float, en analysant la partie numérique de début des strings et en retournant 0.0 lorsqu'aucun nombre n'est trouvé. Elle est identique à floatval(), qui est aujourd'hui le nom préféré. Pour convertir vers d'autres types, consultez intval() et settype().

Pratique

Pratique
Que fait la fonction doubleval() en PHP ?
Que fait la fonction doubleval() en PHP ?
Was this page helpful?