最近在製作程式考題,出了一個0.1+0.2==0.3的題目。
這是很常見的程式考題,題目可能會問如何回傳正確的數字,當0.1+0.2後,結果會是0.30000000000000004的數字,所以0.1+0.2==0.3會回傳false。
怎麼快速解這題呢,只要把它變成整數就可以了。
範例:
let a=0.1,b=0.2;
answer=(a*10+b*10)/10;
程式的意思是,先將0.1和0.2轉成1和2,相加後會變成3,之後再除上之前乘上的數字變0.3,就能回傳正確的數字。
同理:
0.24+0.42會回傳0.6599999999999999。
故只要將10改成100:
let a=0.24,b=0.42;
answer=(a*100+b*100)/100;
就能回傳正確的數字:0.66