Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610

    Operatore di confronto non mi funziona

    Ho 2 semplici variabili e mi serve confrontarle per verificare se sono uguali oppure no:
    Ho provato in tutti i modi ma sempre mi ritorna FALSE anche se effettivamente i due risultati stampati sono uguali!!

    codice:
    $monto_total stampa come valore 551.55 é un valore di un database con campo double
    $TOTAL_PAY stampa come valore sempre 551.55 ma é di ritorno dopo una serie di calcoli tra variabili. Comunque entrambe le variabili sono di tipo numerico non stringhe.
    
    Dove sbaglio???
    
    //verifica
    if ($monto_total == $TOTAL_PAY)
    {
    	echo "Ok";
    }
    else
    {
    	echo "Error";
    }
    M.Solazzi
    from
    Mexico City!!

  2. #2
    fai un casting delle variabili a float:
    codice:
    //verifica
    if ((float)$monto_total == (float)$TOTAL_PAY)
    ....

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    grazie ma non risolvo sempre mi torna FALSE ti giuro non mi é mai successo...
    M.Solazzi
    from
    Mexico City!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    Quello che vorrei capire se a monitor diciamo... i valori sono uguali... e se faccio una verifica mi ritornano numeri... perché non me li confronta?? É un problema di variabili con decimali?
    M.Solazzi
    from
    Mexico City!!

  5. #5
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    fai un var_dump delle due variabili..
    eXvision

  6. #6
    Originariamente inviato da chrismo
    fai un casting delle variabili a float:
    codice:
    //verifica
    if ((float)$monto_total == (float)$TOTAL_PAY)
    ....
    Arghh.....
    http://www.php.net/manual/en/language.types.float.php

    Codice PHP:
    $a 19.90 100;
    $b 1990;
    if (
    $a == $b) {
        echo 
    "vero";
    } else {
        echo 
    "falso";

    Perchč? Perchč 19.90 non viene rappresentato correttamente nella base 2...
    E' il tipico problema che si ha con i valori float

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610
    Grazie a tutti. Ho risolto convertendo i due valori "float" in "stringa" cosķ le confronta correttamente, scusate ma non mi era mai capitato e quindi non lo sapevo.
    M.Solazzi
    from
    Mexico City!!

  8. #8
    Il problema č che se il valore del DB č un "double" mentre l'altro č un "float" saranno effettivamente (e necessariamente) numeri diversi, perchč hanno precisione diversa.

    Il tuo double sarą sicuramente "551.5499999999999" mentre il tuo float sarą effettivamente "551.55".
    Administrator of NAMDesign.Net

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.