[RESOLU] Settype

Eléphanteau du PHP | 20 Messages

20 juin 2019, 10:53

Bonjour à tous,

Je débute en PHP et je ne comprends pas le résultat affiché sur mon code :

Code : Tout sélectionner

<?php $longueur = '20,5 centimètres'; echo $longueur; echo '<br>'; settype($longueur, "float"); echo $longueur; ?>

1) ma variable $longueur est de type string => OK pour moi.
2) Je convertie ma variable string en float (chiffre avec décimale)

Si je convertie ma variable en integer, le résultat me paraitrait logique (20) mais alors pourquoi quand je la convertie en chiffre avec décimale (float), la décimale disparait ?

Merci d'avance pour votre éclairage :D

Mammouth du PHP | 1967 Messages

20 juin 2019, 11:22

le transtypage est hasardeux il vaut mieux gèrer toi même le parsage de tes string.

peut être que la configuration du serveur est avec un point plutot qu'une virgule comme séparateur de décimale.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 20 Messages

20 juin 2019, 11:27

Merci pour votre réponse, il s'agit bien de cela.

C'est une bonne leçon pour l'avenir :D

Merci encore...
Modifié en dernier par hars le 20 juin 2019, 11:30, modifié 2 fois.

Mammouth du PHP | 1967 Messages

20 juin 2019, 11:28

non plutot de configuration locale
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 juin 2019, 13:23

Surtout avec le mot "centimètres" écrit dans ta variable, c'est très ambitieux d'espérer que PHP fasse un transtypage correcte. :-D
Quand tout le reste a échoué, lisez le mode d'emploi...