Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Visualizzazione numero float

    Ciao,

    ho questa situazione:

    Codice PHP:
    if (floatval($abc[$id]) < 1)
       echo 
    floatval($abc[$id]); 
    ma il risultato è 1!

    il var_dump mi dà float(1).

    Come faccio a vedere l'effettivo valore della variabile?

    Grazie.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Sei sicuro che il numero sia effettivamente diverso da 1?

  3. #3
    Io credo che sia 1, ma non escludo che sia 0.9999 poichè è un valore che proviene da un calcolo. Ma come mai allora la condizione if è vera??? A me stampa 1, quindi è minore di 1!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il problema è che è troppo vicino a 1.
    Prova questo codice:
    Codice PHP:
    $valore 10/10.000000000001;
    var_dump($valore);
    echo 
    "
    "
    ;
    if (
    $valore 1) {
        echo 
    "è minore di 1, me ne accorgo ma non so stampartelo come decimale

    "
    ;
    }
    $valore 10/10.00000000001;
    echo 
    "ma basta uno 0 in meno nella divisione e: 
    "
    ;
    var_dump($valore); 

  5. #5
    Io in caso di numero float uso printf. adesso ti faccio un picclolo esempio pratico:
    Codice PHP:
    <?php
     $num
    =10/3;
     
    printf("il rusultato di 10:3 è: %1.2f "$num);
    ?>
    Why so serious?????

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Questo comunque non ti salva da valori troppo vicini a 1.
    Codice PHP:
    $valore 10/10.00000000001;
    printf("il rusultato è: %1.2f "$valore); 
    stampa comunque 1.

  7. #7
    la mia situazione con una soluzione poco elegante:

    Codice PHP:
        $valore 10/10.00000000000001;
        
        
    var_dump($valore);
        
        echo 
    "

    "
    ;
        
        if (
    floatval($valore) < 1)
            echo 
    "\$valore &egrave; minore di 1 ma lo stampo cos&igrave;: $valore

    "
    ;
        
        if ((
    1-floatval($valore)) < 0.01)
            
    $valore 1;
        
        
    var_dump($valore); 
    ci sono metodi più eleganti di questo?

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.