0.1 + 0.2 === 0.3 // false
μ λν΄μ λλ μ€λ κΉ¨λ«κ² λμλ€.
μκ³ λ¦¬μ¦λ§ νκ³ μλ°μ€ν¬λ¦½νΈμ λν΄ λ κΉκ² 곡λΆνμ§ μμλ νμ μ€λ κΉ¨λ¬μ κ² κ°λ€.
κ·Έλ¬λ©΄ 0.1 + 0.2 === 0.3
μ μ false μΌκΉ?
console.loh(0.1 + 0.3); // 0.4
console.log(0.1 + 0.2); // 0.30000000000000004;
μλ°μ€ν¬λ¦½νΈμμλ μ€μλ₯Ό λΆλμμμ λ°©μμΌλ‘ νννλλ° λΆλμμμ μ μ€μλ₯Ό μ νν ννν μ μλ λ¬Έμ κ° μλ€. κ·Έλμ μ νν 0.3μ΄ μλ 0.30000000000000004κ° λμ¨λ€.
0.30000000000000004 λ 0.3 μ νννκΈ° μν κ·ΌμΏκ°μ΄λ€. μ΄λ κ² μ€μλ₯Ό κ·ΌμΏκ°μΌλ‘ νννλ©΄μ λ°μνλ λ¬Έμ λ₯Ό λΆλμμμ λ°μ¬λ¦Ό μ€μ°¨(rounding error)λΌκ³ νλ€.
κ·Έλ¬λ©΄ true κ°μ΄ λμ€κ² νλ €λ©΄ ? toFixed() ν¨μλ₯Ό μ¨μ£Όλ©΄ λλ€. 맀κ°λ³μλ‘ λ°μ μ«μλ§νΌμ μμμ리κΉμ§ λ°μ¬λ¦Όν΄μ μΆλ ₯νλ€.
(0.1 + 0.2).toFixed(1); // 0.3
μ£Όλ§λμ μ΄ λ΄μ©μ λν΄μ μ°Ύμ보면μ μλ°μ€ν¬λ¦½νΈμ λν΄μ μ‘°κΈ λ μμκ°λ κ³κΈ°κ° λ κ² κ°λ€! λΆλμμμ μ λν΄μ μμλ³΄κ³ λΈλ‘κΉ μ ν΄λ³΄λ €κ³ νμ§λ§, μμ§μ λ 곡λΆλ₯Ό ν΄λ΄μΌν κ² κ°λ€!
π λ΄μΌμ TIW(today I Will)
λ°°μ΄(array)