Si può fare con PHP un controllo su un risultato di una somma che questa corrisponda ad un numero intero ?
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().Originariamente inviato da epescol
Si può fare con PHP un controllo su un risultato di una somma che questa corrisponda ad un numero intero ?
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.
Ciao,
puoi fare così (è un po' tortuosa ma non c'è alternativa)
praticamente trasformo la stringa in int e poi in float, se il risultato è identico alla sola trasformazione in float, allora è un interocodice:function _isInt($myVar) { if( is_numeric($myVar) ) { if( (float)$myVar === (float)(int)$myVar ) { return true ; } } return false ; }
per favore NIENTE PVT TECNICI da sconosciuti
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?
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
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";}
?>
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"
Guarda che precedentemente hai chiesto come si poteva verificare che il numero fosse un intero, e la funzione che ho scritto fa questo.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"![]()
![]()
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
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";}
?>
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