我有一個簡單的區間,每次減去0.1。但數列後3次迭代去怪異...這就是我:Javascript減去給出的意外值
function transition_opacity(div_id,opacity){
opacity = 1; //temporary test
var IntervId = setInterval(process_transition,30);
function process_transition(){
console.log(opacity); //check the value
opacity = opacity - 0.1
div_id.style.opacity = opacity;
if(opacity < 0.0){
rmv_div(div_id);
clear();
}
}
function clear(){
clearInterval(IntervId);
}
}
控制檯日誌顯示本作的opacity
值:
1
0.9
0.8
0.7000000000000001
0.6000000000000001
0.5000000000000001
0.40000000000000013
0.30000000000000016
0.20000000000000015
0.10000000000000014
1.3877787807814457e-16
爲什麼做這個瘋狂的數字序列= /對我來說似乎沒什麼意義......它可以正常工作到0.8
哦,浮動數字,你混蛋。也許這將有助於:http://floating-point-gui.de/ – acdcjunior
重複例如http://stackoverflow.com/questions/963873/1-265-10000-126499-99999999999 –