Tôi có một đơn giản cho vòng lặp trong PerlPerl cho vòng lặp đi haywire
for ($i=0; $i <= 360; $i += 0.01)
{
print "$i ";
}
Tại sao nó rằng khi tôi chạy mã này tôi nhận được đầu ra sau, nơi mà ngay sau khi nó được đến 0,81 nó thình lình bắt đầu thêm vào một tải thêm chữ số thập phân? Tôi biết tôi chỉ đơn giản là có thể làm tròn để tránh vấn đề này nhưng tôi đã tự hỏi tại sao nó lại xảy ra. Sự gia tăng 0,01 dường như không hề điên rồ.
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- number-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 có vẻ là một con số đáng kể để chuyển đổi. Nhiều năm trước, tôi đã có một dự án mini cố gắng tìm một số cách để thao tác một giá trị cụ thể: '8.10' chính xác. Cả Java và Perl, đều gặp vấn đề với con số này. – Axeman