日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS中使用bignumber处理高精度小数运算

發布時間:2025/3/12 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS中使用bignumber处理高精度小数运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目開發中發現精度丟失的問題,如0.1+0.2 = 0.30000000000000004的問題

解決方式:引用bignumber.js用于數字精度要求較高的計算。

?

1、安裝或引用:

? ? ?下載地址:https://github.com/MikeMcl/bignumber.js/releases

? ? ?或? npm install bignumber.js --save 命令安裝后使用?import BigNumber from 'bignumber.js' 引用

? ? ??? ? ? ??

? ? ?

2、bignumber.js?API地址:?http://mikemcl.github.io/bignumber.js/

?

3、靜態方法

  • clone() & config()?可以為BigNumber構造函數設置參數
var BN = BigNumber.clone() //生成一個獨立的BigNumber構造函數 BN.config({DECIMAL_PLACES:4, ROUNDING_MODE: 4}) //設置小數點、舍入模式 BN(1).div(3).toNumber() //0.3333,注意跟上面計算結果的區別

??

  • maximum & minimum & sum & radom
import BigNumber from 'bignumber.js'export default {name: 'landing-page',components: { SystemInformation },created(){let x = new BigNumber(0.1)let x2 = new BigNumber()let y = x.plus(0.2) console.log('8888-----',0.1+0.2); // 0.30000000000000004console.log('9999--plus---',y.toString()); // 0.3console.log('9999--maximum---',BigNumber.maximum(2,12,32.21,222.11,76).toString()); // 222.11console.log('9999--sum---',BigNumber.sum(1,2,3,4,5).toString()); // 15console.log('9999--radom---',BigNumber.random(10).toString()); // 0.4046523741},

?

3、實例方法

  • 加法 .plus(n [, base]) ? BigNumber
  • 減法?.minus(n [, base]) ? BigNumber
  • 乘法 .times(n [, base]) ? BigNumber
  • 除法 .div(n [, base]) ? BigNumber
  • 取模/取余: .mod(n [, base])
  • 指數運算: .pow(n [, m]) ? BigNumber
  • 開平方:.sqrt() ? BigNumber
  • 比較大小: .comparedTo(n [, base]) ? number
  • 精度調整 .dp([dp [, rm]]) ? BigNumber|number
  • 取整:.integerValue([rm]) ? BigNumber
  • 有效數字 .sd([d [, rm]]) ? BigNumber|number
  • 保留小數位數 .toFixed([dp [, rm]]) ? string
let x = 6.2000, y = 3.10, z = 9;console.log('9999--plus---',BigNumber(0.7).plus(x).plus(y).toString()); // 10console.log('9999--minus---',BigNumber(x).minus(2).toString()); // 4.2console.log('9999--times---',BigNumber(x).times(10).toString()); // 62console.log('9999--div---',BigNumber(x).div(y).toString()); // 2console.log('9999--mod---',BigNumber(x).mod(y).toString()); // 0console.log('9999--pow---',BigNumber(x).pow(-2).toString()); // 0.0260145681581685744console.log('9999--sqrt---',BigNumber(z).sqrt().toString()); // 3console.log('9999--toFixed---',BigNumber(x).toFixed(1).toString()); // 6.2console.log('9999--integerValue---',BigNumber(x).integerValue(1).toString()); // 6console.log('9999--sd---',BigNumber(x).sd().toString()); // 2console.log('9999--comparedTo---',BigNumber(x).comparedTo(y).toString()); //1, 1為大于,-1為小于,0為等于

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的JS中使用bignumber处理高精度小数运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。