Ho un semplice ciclo for in PerlPerl per il ciclo che va in tilt
for ($i=0; $i <= 360; $i += 0.01)
{
print "$i ";
}
Perché è che quando faccio funzionare questo codice ottengo il seguente output, dove non appena si arriva a 0,81 che improvvisamente inizia a aggiungere in un carico più posti decimali? So che potrei semplicemente arrotondare per evitare questo problema, ma mi chiedevo perché succede. Un incremento di 0,01 non sembra affatto folle da fare.
0.77
0.78
0.79
0.8
0.81
0.820000000000001
0.830000000000001
0.840000000000001
0.850000000000001
0.860000000000001
0.870000000000001
http://learn.perl.org/faq/perlfaq4.html#Why-am-I-getting-long-decimals-eg-19.9499999999999-instead-of-the- numeri-I-should-be-getting-eg-19.95- – mob
http://stackoverflow.com/questions/10908825/, http://stackoverflow.com/questions/9790048, http://stackoverflow.com/questions/ 3916314, http://stackoverflow.com/questions/7066636, http://stackoverflow.com/questions/2080629, http://stackoverflow.com/questions/2056681, http://stackoverflow.com/questions/14204125 – mob
8.1 sembra essere un numero notevolmente difficile da convertire. Anni fa, avevo un mini-progetto che cercava di trovare * qualche * modo di manipolare un valore particolare: '8.10' con precisione. Sia Java che Perl, stavano avendo problemi con questo numero. – Axeman