どのように0.1+0.2と0.3が等しいと判断しますか?

483 ワード

  • はある会社の面接でこの問題に出会うとは思いませんでした.幸いにも私は「あなたが知らないjavaScriptの中巻」を勉強しています.
  • 0.1+0.2と0.3は等しいかどうかをどう判断しますか?
  • で最も一般的なのは誤差範囲値を設定することです.通常は「及びその精度」(machine epsilon)と呼ばれています.javaScriptにとって、この値は通常2^-52です.
  • この値はES 6 Number.EPSILONに定義されており、
  • を直接使用することができる.
    function numberClose(num1,num2){
        return Math.abs(num1 - num2) < Number.EPSILON;
    }
    var first = 0.1 +0.2
    var second = 0.3
    numberClose(first,second) //true
    numberClose(0.0000001,0.0000002) //false