js浮點數的比較


function MathFloatNumber(val1,val2,type){                     //val1:浮點數1      val2:浮點數2     type:運算類型(+,-,*,/,=)
           let intnumber1=String(val1).split('.')[1].length                    //浮點數轉string並獲取小數點后面位數
           let intnumber2=String(val2).split('.')[1].length        //浮點數轉string並獲取小數點后面位數
           let biglength=Math.pow(10,(intnumber1>intnumber2?intnumber1:intnumber2))        //得到小數點位數多的數,計算浮點數轉為整數的位數   (10的位數次方)
           let bigval1=val1*biglength             //得到放大倍數的浮點數1
           console.log(biglength)
           let bigval2=val2*biglength           //得到放大倍數的浮點數2
            switch(type){
                case 1:    //加法
                    return (bigval1+bigval2)/biglength                /  
                    break
                case 2:    //減法
                    return (bigval1-bigval2)/biglength
                    break
                case 3:    //乘法
                    return (bigval1*bigval2)/(biglength*biglength)
                    break  
                case 4:    //除法
                    return (bigval1/bigval2).toFixed(3)
                    break                  
                case 5:
                    return bigval1===bigval2
                    break
                default:
                    console.log('類型錯誤')
            }
        }
        // var a=MathFloatNumber(0.1,0.05,2)
        // console.log(a)
        console.log(MathFloatNumber(MathFloatNumber(0.1,0.2,1),0.3,5))                     //  判斷(0.1+0.2==0.3)等於true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM