Ciao a tutti,
scrivo perchč mi trovo in una situazione che non riesco a spiegarmi.
Ho una query sql che deve calcolare una percentuale partite giocate/vinte di alcuni tennisti(dovrebbe restituirmi un valore arrotondato alla seconda cifra decimale).
"SELECT Tennisti.Nome, Tennisti.Cognome, Tennisti.Giocate, Tennisti.Vittorie, ROUND((Tennisti.Vittorie * 100) / Tennisti.Giocate, 2) AS perc
FROM ....."
Valori immessi: Vittorie = 30, Giocate = 33
Risultato: dovrebbe darmi 90,91 invece mi restituisce 90
Dopo ore di sbattimento ho fatto un tentativo per vedere se, per qualche motivo, la query troncava i decimali.
Ho modificato l'operazione come segue:
"...ROUND((Tennisti.Vittorie * 125.45) / Tennisti.Giocate, 2) AS perc..."
ed ho visto che mi restituiva come risultato 114,05000000000
quindi ho capito che si comportava nel modo corretto se moltiplicavo per un numero con decimali.
A questo punto ho provato a modificare la query come segue:
"SELECT Tennisti.Nome, Tennisti.Cognome, Tennisti.Giocate, Tennisti.Vittorie, ROUND((Tennisti.Vittorie * 100) / (Tennisti.Giocate + 0.0000000001), 2) AS perc
FROM ....."
e, finalmente ho ottenuto il risultato voluto: perc=90,9100000000
Ma, mi rendo conto che č un risultato ottenuto artificialmente e mi piacerebbe capire perchč mi da questo problema.
Spero di essemi spiegato bene.
Grazie.
|