美文网首页
js 处理 小数 精度丢失问题

js 处理 小数 精度丢失问题

作者: 请叫我彭彭 | 来源:发表于2021-11-30 16:28 被阅读0次
       var a = 0.001;
            var b = 0.002
    
            function add(a, b) {
                let tempA = a + ''
                let tempB = b + ''
    
                // 根据“.” 判断是否有小数
                let index1 = tempA.indexOf('.')
                let index2 = tempB.indexOf('.')
    
                // 得到小数位数
                let numA = index1 > -1 ? tempA.split('.')[1].length : 0
                let numB = index2 > -1 ? tempB.split('.')[1].length : 0
    
                // 最大位数
                const bigger = (numA > numB) ? numA : numB
                // 最小位数
                const small = (numA < numB) ? numA : numB
    
                // 计算需要 填充的0
                const fill = bigger - small
    
                tempA = tempA.replace('.', '')
                tempB = tempB.replace('.', '')
    
    
                // 处理 补0 然后转换为整数
                if (numA === small) {
                    for (let i = 0; i < fill; i++) {
                        tempA += '0'
                    }
                } else {
                    for (let i = 0; i < File; i++) {
                        tempB += '0'
                    }
                }
    
                // 计算总和/倍数 得到  结果
                let sum = parseInt(tempA) + parseInt(tempB)
                // 倍数
                var multiple = 1
                for (let i = 0; i < bigger; i++) {
                    multiple *= 10
                }
    
                sum = sum / multiple
                return sum
    
            }
    
            const result = add(a, b)
            console.log(result)
    

    相关文章

      网友评论

          本文标题:js 处理 小数 精度丢失问题

          本文链接:https://www.haomeiwen.com/subject/pkpdxrtx.html