ตัวอย่างเช่นฉันต้องการแสดงรายการปุ่มจาก 0,0.5, ... 5 ซึ่งข้ามไปแต่ละ 0.5 ฉันใช้สำหรับการวนรอบเพื่อทำเช่นนั้นและมีสีที่แตกต่างกันที่ปุ่ม STANDARD_LINE:
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';
}
}
ในกรณีนี้ไม่ควรมีข้อผิดพลาดในการปัดเศษเนื่องจากค่าแต่ละค่าเป็นค่าที่แน่นอนใน IEEE 754 แต่ฉันกำลังลำบากถ้าฉันควรเปลี่ยนเพื่อหลีกเลี่ยงการเปรียบเทียบความเท่าเทียมกันของทศนิยม
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';
}
}
ในมือข้างหนึ่งรหัสดั้งเดิมนั้นเรียบง่ายกว่าและส่งต่อมาให้ฉัน แต่มีสิ่งหนึ่งที่ฉันกำลังพิจารณา: i == STANDARD_LINE ทำให้เข้าใจผิดว่าเป็นเพื่อนร่วมทีมของจูเนียร์หรือไม่? มันซ่อนข้อเท็จจริงที่ว่าตัวเลขจุดลอยตัวอาจมีข้อผิดพลาดในการปัดเศษหรือไม่ หลังจากอ่านความคิดเห็นจากโพสต์นี้:
ดูเหมือนว่ามีนักพัฒนาหลายคนไม่ทราบว่าตัวเลขลอยตัวบางอย่างแน่นอน ฉันควรหลีกเลี่ยงการเปรียบเทียบความเท่าเทียมกันของจำนวนทศนิยมแม้ว่าจะถูกต้องในกรณีของฉัน หรือฉันกำลังคิดถึงเรื่องนี้อยู่
button
ว่าไม่ได้เปลี่ยนแปลงอะไรในลูปของคุณ รายการปุ่มเข้าถึงได้อย่างไร? ผ่านดัชนีไปยังอาร์เรย์หรือกลไกอื่น ๆ หากเป็นการเข้าถึงดัชนีไปยังอาร์เรย์สิ่งนี้จะเป็นข้อโต้แย้งอีกประการหนึ่งที่สนับสนุนการเปลี่ยนเป็นจำนวนเต็ม
i
จะเป็นทั้งจำนวนในรายการที่สองเท่านั้น/2.0
ลองเอาสอง