Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443

    Controllo numero intero

    Si può fare con PHP un controllo su un risultato di una somma che questa corrisponda ad un numero intero ?

  2. #2

    Re: Controllo numero intero

    Originariamente inviato da epescol
    Si può fare con PHP un controllo su un risultato di una somma che questa corrisponda ad un numero intero ?
    Usa is_int() pero' se il risultato viene da un form e' sempre una stringa, deve essere usato is_numeric().

    Se invece vuoi che sia arrotondato un numero decimale ad un intero usa round().

    Puoi pure scegliere se arrotondare sopra o sotto con ceil() oppure floor().


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

  3. #3
    Ciao,
    puoi fare così (è un po' tortuosa ma non c'è alternativa)
    codice:
    function _isInt($myVar)
    {
    
        if( is_numeric($myVar) )
        {
            if( (float)$myVar === (float)(int)$myVar )
            {
                return true ;
            }
        }
    
        
        return false ;
    
    }
    praticamente trasformo la stringa in int e poi in float, se il risultato è identico alla sola trasformazione in float, allora è un intero
    per favore NIENTE PVT TECNICI da sconosciuti

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie,

    sicuramente non ho capito bene quello che mi hai suggerito di fare.

    Dovrei semplicemente controllate che la somma sottostante corrisponda ad un numero intero.

    <?php if ((substr($c,-7,1) + substr($c,-4,1) + substr($c,-2,1)) == is_int()) {echo "OK";} else {echo "KO";} ?>

    Dove sbaglio?

  5. #5
    Mettiamo che $somma sia la vatiabile che conterrà la tua somma (comunque tu la ottenga)

    if(_isInt($somma))
    {
    //ok
    }
    else
    {

    //ko

    }

    Ho sostituito la mia funzione a quelle php di default perchè il modo in cui PHP tratta i tipi è impreciso
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie,

    sia che il numero sia divisivile (numero pari) che il numero non sia divisibile (numero dispari) il risultato è sempre echo "OK"


    <?php

    $c = 9;

    function _isInt($c)
    {

    if( is_numeric($c) )
    {
    if( (float)$c === (float)(int)$c )
    {
    return true ;
    }
    }

    return false ;
    }

    if (_isInt($c)) {echo "OK";} else {echo "KO";}

    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    ah.... dimenticavo

    in asp il controllo viene fatto nella seguente simile maniera, ma a me seve in php:


    if (valore) mod 2 = 0 then
    esito="OK"
    else
    esito="KO"

  8. #8
    Originariamente inviato da epescol
    Grazie,

    sia che il numero sia divisivile (numero pari) che il numero non sia divisibile (numero dispari) il risultato è sempre echo "OK"
    Guarda che precedentemente hai chiesto come si poteva verificare che il numero fosse un intero, e la funzione che ho scritto fa questo.
    Se invece vuoi sapere se il numero è pari o dispari (che è tutt'altra cosa) devi usare l'opearatore modulo anche in PHP, l'operatore modulo è "%" e non "Mod" come in ASP
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Hai ragione, più pensi alle cose complicate, più dimentichi quelle semplici!

    Ho dimenticato la divisione. Ora funziona!!! Grazie 1000


    <?php

    $c = 8;

    function _isInt($c)
    {

    if( is_numeric($c) )
    {
    if( (float)$c === (float)(int)$c )
    {
    return true ;
    }
    }

    return false ;
    }

    if (_isInt($c/2)) {echo "OK";} else {echo "KO";}

    ?>

  10. #10
    La tua domanda doveva essere "come faccio a sapere se un numero è pari o dispari"?

    La risposta sarebbe stata

    if($numero % 2)
    {
    //è dispari
    }
    {
    //è pari
    }
    per favore NIENTE PVT TECNICI da sconosciuti

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.