Mam prosty dla pętli w PerluPerl dla pętli dzieje bzika
for ($i=0; $i <= 360; $i += 0.01)
{
print "$i ";
}
Dlaczego jest tak, że gdy ten kod pojawia się następujący wyjście, gdzie tak szybko, jak to robi do 0.81 to nagle zaczyna dodać obciążenie więcej miejsc dziesiętnych? Wiem, że mógłbym po prostu zaokrąglić w górę, aby uniknąć tego problemu, ale zastanawiałem się, dlaczego tak się dzieje. Przyrost 0,01 nie wydaje się szalony.
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- numbers-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 wydaje się być niezwykle trudną do przeliczenia liczbą. Wiele lat temu miałem mini-projekt próbujący znaleźć * jakiś * sposób manipulowania konkretną wartością: "8.10" dokładnie. Zarówno Java, jak i Perl miały problemy z tym numerem. – Axeman