string2float

A volte la conversione tra stringhe e numeri, può non avvenire come uno se l'aspetta e questo può far perdere un oretta a capire perchè cavolo non funziona il tuo script

C'è un form con quattro campi per inserire numeri, la somma dei primi tre deve essere uguale al quarto (1).
Io per fare il fighetto uso il numberformat con uno spazio per dividere le migliaia così che il numero milleduecentotrentaquattro diventa 1 234,00 (più due decimali dopo una virgola).





Il php, come tanti linguaggi moderni, non usa dichiare il tipo alle variabili, si ritiene abbastanza smart da capire da solo che se il valore di uan variabile è fatto di una sequenza alfanumerica sarà una stringa, invece se è fatta solo di caratteri numerici sarà un numero.
Così posso fare tranquillamemte operazioni matematiche con stringhe di numeri, che avrò sempre il risultato della operazione coretto. Dopotutto è smart.
Tanto smart che se tra i numeri c'è un . o una , capisce che ci sono dei decimali e tratta il numero come un float.
Ma non tanto smart da capire che se c'è un spazio nel mezzo è tutto quanto un numero. A maggior ragione se a destra dello spazio ci sono 3 numeri seguiti da un punto con altre 2 cifre

Insomma una stringa così "1 234,00" per php equivale al numero "1".

Con buona pace della mia bile.


1) può sembrare una cosa scema, ma ha il suo perchè

Nessun commento:

Posta un commento