Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1

    Variabile numerica vista come stringa

    Salve.

    Mi sono imbattuto in un problema da cui non riesco ad uscirne.

    Ho creato un codice che estrae dati da una pagina web. Il dato in questione è un prezzo, 18.80 €

    $num ha un valore di 18.80 €

    Se lo vado a stampare a video, tutto ok quindi:

    echo $num; -> 18.80 € // corretto

    andiamo a ripulirlo, quindi:

    $num2 = preg_replace('/[^0-9.]/','', $num);
    echo $num2; -> 18.80 // corretto

    Adesso viene il bello..

    se faccio

    echo (float)$num2; -> 0 // lo vede come zero
    echo (int)$num2; -> 0 // lo vede come zero
    echo floatval($num2); -> 0 // lo vede come zero
    echo intval($num2); -> 0 // lo vede come zero

    a questo punto forzo..

    verifico il tipo di variabile

    echo gettype($num2); -> mi restituisce 'string'

    quindi cambio il tipo di variabile

    settype($num2,'float');

    echo $num2; -> 0 // da sempre valore zero

    tento l'ultima assegnandolo ad una nuova variabile float


    $nuova = (float)$num2;
    echo $nuova; -> sempre 0

    mi viene un dubbio.. quindi faccio

    echo $num2; -> mi da 18.80

    subito dopo

    echo count($num2); -> mi da 1 (dovrebbe darmi 5)

    quindi capisco che questo "18.80" lo vede come un carattere unico e forse non riesce a decodificarlo (come ad esempio i caratteri speciali etc).

    Tuttavia è riuscito a ripulirlo con preg_replace() carattere per carattere, al che la cosa mi suona ancora più strana.

    Cosa mi consigliate di fare a questo punto? Io ho bisogno di avere questo numero come valore numerico e non come stringa, per inserirlo in una espressione matematica.

    Ha forse a che fare la codifica dei caratteri? E come posso risolvere in caso?

    Grazie anticipatamente!
    Ultima modifica di Fede_Rico; 25-03-2015 a 02:11

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.