Örneğin, her 0.5 için atlayan 0,0.5, ... 5 düğmelerinden oluşan bir liste göstermek istiyorum. Bunu yapmak için for döngüsünü kullanıyorum ve STANDARD_LINE düğmesinde farklı renklerim var:
var MAX=5.0;
var DIFF=0.5
var STANDARD_LINE=1.5;
for(var i=0;i<=MAX;i=i+DIFF){
button.text=i+'';
if(i==STANDARD_LINE){
button.color='red';
}
}
Bu durumda, IEEE 754'te her değer tam olduğu için hiçbir yuvarlama hatası olmamalıdır.
var MAX=10;
var STANDARD_LINE=3;
for(var i=0;i<=MAX;i++){
button.text=i/2.0+'';
if(i==STANDARD_LINE/2.0){
button.color='red';
}
}
Bir yandan, orijinal kod daha basit ve bana iletiliyor. Ancak düşündüğüm bir şey var: i == STANDARD_LINE genç takım arkadaşlarını yanıltıyor mu? Kayan nokta sayılarının yuvarlama hataları olabileceği gerçeğini gizliyor mu? Bu gönderiden gelen yorumları okuduktan sonra:
Görünüşe göre birçok geliştirici, bazı şamandıra numaralarının kesin olduğunu bilmiyor. Benim durumumda geçerli olsa bile değişken sayı eşitlik karşılaştırmalarından kaçınmalı mıyım? Yoksa bu konuda mı düşünüyorum?
button
hiçbir yerinde değişmemesinden dolayı çok dikkatim dağılıyor . Düğme listesine nasıl erişilir? Dizin üzerinden diziye mi yoksa başka bir mekanizmaya mı? Bir diziye indeks erişimiyle yapılıyorsa, bu tamsayılara geçmek için başka bir argümandır.
i
ikinci listedeki sadece tam sayı olacak. İkincisi çıkarmayı deneyin/2.0
.