Visualizzazione dei risultati da 1 a 5 su 5

Discussione: confronto tra double?

  1. #1

    confronto tra double?

    Salve,
    mi sono imbattuto oggi nel problema di non riuscire ad eseguire un confronto tra due variabili.
    Ho trovato un post analogo qui nel forum cercando "casting": http://forum.html.it/forum/showthrea...hlight=casting ma non c'è la soluzione

    Questo è un codice di esempio
    Codice PHP:
    $prezzo 57.00;
    $numero 10;
    $prezzo2 51.30;
    $numero2 9;

    $uno $prezzo/$numero;
    $due $prezzo2/$numero2;

    echo 
    gettype($uno)." ".$uno;
    echo 
    "
    "
    ;
    echo 
    gettype($due)." ".$due
    if (
    $uno == $due)
    echo 
    "
    OK"

    Il risultato è sempre
    double 5.7
    double 5.7
    Niente "OK" e infatti nello script vero e proprio che deve fare dei confronti su dei prezzi in euro mi crea dei problemi. Dovrei avere ogni prezzo ripetuto solo una volta in un elenco e invece mi trovo puntualmente dei doppioni. I prezzi derivano da delle divisioni proprio come nel codice qui sopra.

    Tentativi del tipo
    (float)$prezzo = 57.00;
    (double)$prezzo = 57.00;

    settype($uno, "double");
    settype($uno, "float");

    sono completamente inutili.

    Morale della favola: come faccio a sapere se due valori double sono uguali?
    Ci sono riuscito solo trasformandoli in stringhe, ma preferirei evitare un espediente così misero.
    Grazie!
    Nemesis

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    non so se sia il metodo giusto ma metendo le variabili all'interno di stringhe nel controllo riesco a fare uscire OK prova un po :master:

    Codice PHP:
    <?
    $prezzo 
    57.00
    $numero 10
    $prezzo2 51.30
    $numero2 9

    $uno $prezzo/$numero
    $due $prezzo2/$numero2

    echo 
    gettype($uno)." ".$uno
    echo 
    "
    "

    echo 
    gettype($due)." ".$due
    if (
    "$uno== "$due"
    echo 
    "
    OK"
    ;


    ?>

  3. #3

    Re: confronto tra double?

    Originariamente inviato da nemesis_83

    Morale della favola: come faccio a sapere se due valori double sono uguali?
    Ci sono riuscito solo trasformandoli in stringhe, ma preferirei evitare un espediente così misero.
    Grazie!
    Codice PHP:
    if (bccomp($uno$due2) == 0)
    echo 
    "
    OK"

    http://it2.php.net/manual/it/function.bccomp.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116

    Re: confronto tra double?

    Morale della favola: come faccio a sapere se due valori double sono uguali?
    Ci sono riuscito solo trasformandoli in stringhe, ma preferirei evitare un espediente così misero.
    Grazie!
    XD scusa tanto non avevo letto le ultime righe

  5. #5

    Re: Re: confronto tra double?

    Originariamente inviato da piero.mac
    Codice PHP:
    if (bccomp($uno$due2) == 0)
    echo 
    "
    OK"

    http://it2.php.net/manual/it/function.bccomp.php
    Perfetto! Proprio quello che mi serviva!
    E dire che avevo cercato sia su google che su php.net ma non ero riuscito a trovare questa funzione.
    Grazie mille!
    Nemesis

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 © 2024 vBulletin Solutions, Inc. All rights reserved.