美文网首页Vue.js
2019-12-06 js数字计算精度误差问题,解决办法!!!

2019-12-06 js数字计算精度误差问题,解决办法!!!

作者: deadcalm | 来源:发表于2019-12-06 15:18 被阅读0次

需要拿走,有问题请提出,不谢 🤣🤣🤣

Number.prototype.add = function(num) {
  let str = this.toString().split('.')
  let str1 = num.toString().split('.')

  let that = 0
  let thatNum = 0

  if (str.length > 1) {
    that = str[1].length
  }

  if (str1.length > 1) {
    thatNum = str1[1].length
  }

  let len = Math.pow(10, Math.max(that, thatNum))

  return (this * len + num * len) / len
}

Number.prototype.sub = function(num) {
  let str = this.toString().split('.')
  let str1 = num.toString().split('.')

  let len = 0
  let lenNum = 0

  if (str.length > 1) {
    len = str[1].length
  }

  if (str1.length > 1) {
    lenNum = str1[1].length
  }

  let pow = Math.pow(10, Math.max(len, lenNum))

  return (this * len - num * pow) / pow
}

Number.prototype.sub = function(num) {
  let str = this.toString().split('.')
  let str1 = num.toString().split('.')

  let len = 0
  let lenNum = 0

  if (str.length > 1) {
    len = str[1].length
  }

  if (str1.length > 1) {
    lenNum = str1[1].length
  }

  let pow = Math.pow(10, Math.max(len, lenNum))

  return (this * len - num * pow) / pow
}

Number.prototype.multiply = function(num) {
  let strThis = this.toString()
  let strNum = num.toString()
  let str = strThis.split('.')
  let str1 = strNum.split('.')
  let len = 0

  if (str.length > 1) {
    len += str[1].length
  }

  if (str1.length > 1) {
    len += str1[1].length
  }
  
  let pow = Math.pow(10, len)

  return (strThis.replace('.', '') * strNum.replace('.', '')) / pow
}

Number.prototype.divide = function(num) {
  let strThis = this.toString()
  let strNum = num.toString()
  let str = strThis.split('.')
  let len = strNum.length

  if (str.length > 1) {
    len += str[1].length
  }

  let pow = Math.pow(10, len)

  return this * pow / num / pow
}

相关文章

  • 2019-12-06 js数字计算精度误差问题,解决办法!!!

    需要拿走,有问题请提出,不谢 ???

  • js精度问题

    关于js浮点数计算精度不准确问题的解决办法 今天在计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前就一...

  • 备忘

    1、js中解决数字计算精度问题,math.js bignumber. math.js https://blog.c...

  • js 处理四则运算失去精度问题

    js 处理四则运算失去精度问题 计算精度,特别是浮点数计算。举个栗子 然后我寻求各种解决办法,其中用了lodash...

  • js计算精度误差解决方案

    小数计算误差 先乘以小数点位数,计算后再除以位数 转字符串 toFixed() xx.5误差

  • Js计算精度问题

    最近在做金融类的开发,页面需要一些计算,在计算过程中发现js页面会存在精度问. 例如: 0.1 + 0.2 /...

  • iOS 浮点数的精确计算和四舍五入问题

    iOS开发中,使用浮点数(float,double)类型运算需要注意计算精度的问题。即使只是两位小数,也会出现误差...

  • NSDecimalNumber

    在iOS开发中,进场遇到货币价格相关的计算,这是我们需要注意计算精度的问题。使用float类型运算,经常出现误差,...

  • iOS中NSDecimalNumber使用

    在iOS开发中,经常遇到和货币价格计算相关的,这时就需要注意计算精度的问题。使用float类型运算,经常出现误差。...

  • Objective-C货币的精确计算

    问题来源 在iOS开发中,和货币价格计算相关的,是需要注意计算精度的问题的。即使只是两位小数,也会出现误差。使用f...

网友评论

    本文标题:2019-12-06 js数字计算精度误差问题,解决办法!!!

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