예를 들어 0,0.5, ... 5의 버튼 목록을 표시하고 각 0.5마다 점프합니다. for 루프를 사용하여 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
.