Ciao,
ho questa situazione:
ma il risultato è 1!Codice PHP:
if (floatval($abc[$id]) < 1)
echo floatval($abc[$id]);
il var_dump mi dà float(1).
Come faccio a vedere l'effettivo valore della variabile?
Grazie.
Ciao,
ho questa situazione:
ma il risultato è 1!Codice PHP:
if (floatval($abc[$id]) < 1)
echo floatval($abc[$id]);
il var_dump mi dà float(1).
Come faccio a vedere l'effettivo valore della variabile?
Grazie.
Sei sicuro che il numero sia effettivamente diverso da 1?
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!
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);
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?????
Questo comunque non ti salva da valori troppo vicini a 1.
stampa comunque 1.Codice PHP:
$valore = 10/10.00000000001;
printf("il rusultato è: %1.2f ", $valore);
la mia situazione con una soluzione poco elegante:
ci sono metodi più eleganti di questo?Codice PHP:
$valore = 10/10.00000000000001;
var_dump($valore);
echo "
";
if (floatval($valore) < 1)
echo "\$valore è minore di 1 ma lo stampo così: $valore
";
if ((1-floatval($valore)) < 0.01)
$valore = 1;
var_dump($valore);