my-bignumber

1.0.0 • Public • Published

JavaScript处理加减乘除常见的精度计算问题,一般在计算金额比例常用到!

基于bignumber.js 处理常见的加减乘除的精度问题

示例

/* MyBigNumber.example.js */
 
const BigNumber = require('bignumber.js')
 
/**
 * JavaScript中的加减乘除的精度的问题
 * 基于bignumber.js
 */
 
class MyBigNumber {
  /**
   * 加法 用例: 0.1 + 0.2 ?= 0.3
   */
  static plus(a, b) {
    const r = new BigNumber(a).plus(b)
 
    // @Test Logger
    console.log(`【加法】-处理前:${+ b}, 处理后:${r}`)
 
    return +r.toString()
  }
 
  /**
   * 减法 用例:0.12 - 0.1 ?= 0.02
   */
  static minus(a, b) {
    const r = new BigNumber(a).minus(b)
 
    // @Test Logger
    console.log(`【减法】-处理前:${- b}, 处理后:${r}`)
 
    return +r.toString()
  }
 
  /**
   * 乘法 用例:1.15 * 100 ?= 115
   */
  static mul(a, b) {
    const r = new BigNumber(a).multipliedBy(b)
 
    // @Test Logger
    console.log(`【乘法】-处理前:${* b}, 处理后:${r}`)
 
    return +r.toString()
  }
 
  /**
   * 除法 用例: 0.15 / 0.1 ?= 1.5
   */
  static div(a, b) {
    const r = new BigNumber(a).dividedBy(b)
 
    // @Test Logger
    console.log(`【除法】-处理前:${/ b}, 处理后:${r} `)
 
    return +r.toString()
  }
}
 
MyBigNumber.plus(0.1, 0.2) // 【加法】-处理前:0.30000000000000004, 处理后:0.3
MyBigNumber.minus(0.12, 0.1) // 【减法】-处理前:0.01999999999999999, 处理后:0.02
MyBigNumber.mul(1.15, 100) // 【乘法】-处理前:114.99999999999999, 处理后:115
MyBigNumber.div(0.15, 0.1) // 【除法】-处理前:1.4999999999999998, 处理后:1.5
 

Package Sidebar

Install

npm i my-bignumber

Weekly Downloads

12

Version

1.0.0

License

ISC

Unpacked Size

4.83 kB

Total Files

6

Last publish

Collaborators

  • adleytales