最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中BigNumber的使用詳解

 更新時(shí)間:2025年05月08日 10:55:48   作者:胡歌1  
JavaScript中使用BigNumber.js庫(kù)進(jìn)行大整數(shù)和高精度小數(shù)運(yùn)算,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 安裝 bignumber.js

(1) 使用 npm 安裝

npm install bignumber.js

(2) 在瀏覽器中使用

<script src="https://cdn.jsdelivr.net/npm/bignumber.js@9.0.2/bignumber.min.js"></script>

2. 基本用法

(1) 創(chuàng)建 BigNumber 對(duì)象

const BigNumber = require('bignumber.js');

// 從字符串創(chuàng)建
const num1 = new BigNumber('123456789012345678901234567890');

// 從數(shù)字創(chuàng)建
const num2 = new BigNumber(12345);

// 從科學(xué)計(jì)數(shù)法創(chuàng)建
const num3 = new BigNumber('1.23e+18');

(2) 基本運(yùn)算

BigNumber 支持加、減、乘、除等基本運(yùn)算:

const a = new BigNumber('12345678901234567890');
const b = new BigNumber('98765432109876543210');

// 加法
const sum = a.plus(b); // 111111111011111111100

// 減法
const diff = a.minus(b); // -86419753208641975320

// 乘法
const product = a.times(b); // 1219326311370217952237463801111263526900

// 除法
const quotient = a.dividedBy(b); // 0.12499999886093750001

(3) 比較大小

const x = new BigNumber('12345678901234567890');
const y = new BigNumber('98765432109876543210');

// 是否相等
console.log(x.isEqualTo(y)); // false

// 是否大于
console.log(x.isGreaterThan(y)); // false

// 是否小于
console.log(x.isLessThan(y)); // true

(4) 取整和取模

const num = new BigNumber('123.456');

// 取整
const integerPart = num.integerValue(); // 123

// 四舍五入
const rounded = num.round(); // 123

// 取模
const remainder = num.modulo(10); // 3.456

(5) 格式化輸出

const num = new BigNumber('1234567890.123456789');

// 轉(zhuǎn)換為字符串
console.log(num.toString()); // "1234567890.123456789"

// 保留小數(shù)位數(shù)
console.log(num.toFixed(4)); // "1234567890.1235"

// 科學(xué)計(jì)數(shù)法
console.log(num.toExponential(4)); // "1.2346e+9"

3. 高級(jí)用法

(1) 鏈?zhǔn)秸{(diào)用

BigNumber 支持鏈?zhǔn)秸{(diào)用:

const result = new BigNumber('1234567890')
    .plus('9876543210')
    .times('2')
    .dividedBy('3')
    .toFixed(2);

console.log(result); // "7407407400.00"

(2) 處理精度

BigNumber 可以設(shè)置全局精度:

// 設(shè)置全局精度為 10 位小數(shù)
BigNumber.set({ DECIMAL_PLACES: 10 });

const num = new BigNumber('1').dividedBy('3');
console.log(num.toString()); // "0.3333333333"

(3) 處理大整數(shù)

BigNumber 可以處理超出 JavaScript 安全整數(shù)范圍的大整數(shù):

const bigInt = new BigNumber('123456789012345678901234567890');
console.log(bigInt.toString()); // "123456789012345678901234567890"

(4) 處理科學(xué)計(jì)數(shù)法

const sciNum = new BigNumber('1.23e+18');
console.log(sciNum.toString()); // "1230000000000000000"

4. 注意事項(xiàng)

(1) 避免直接使用 Number 類型

BigNumber 對(duì)象不能直接與 JavaScript 的 Number 類型進(jìn)行運(yùn)算,必須先將 Number 轉(zhuǎn)換為 BigNumber

const a = new BigNumber('12345678901234567890');
const b = 12345;

// 錯(cuò)誤:直接與 Number 類型運(yùn)算
// const sum = a + b;

// 正確:將 Number 轉(zhuǎn)換為 BigNumber
const sum = a.plus(new BigNumber(b));

(2) 避免精度丟失

在創(chuàng)建 BigNumber 時(shí),盡量使用字符串而不是數(shù)字,以避免精度丟失:

// 錯(cuò)誤:精度丟失
const num1 = new BigNumber(12345678901234567890); // 12345678901234567000

// 正確:使用字符串
const num2 = new BigNumber('12345678901234567890'); // 12345678901234567890

(3) 處理除零錯(cuò)誤

BigNumber 會(huì)拋出除零錯(cuò)誤:

try {
    const result = new BigNumber('10').dividedBy('0');
} catch (e) {
    console.error("Division by zero!");
}

5. 與其他庫(kù)的比較

特性BigNumber (bignumber.js)BigInt (原生)Decimal.js
支持大整數(shù)???
支持高精度小數(shù)???
支持科學(xué)計(jì)數(shù)法???
鏈?zhǔn)秸{(diào)用???
原生支持???

6. 總結(jié)

BigNumber 是 JavaScript 中處理大整數(shù)和高精度小數(shù)的強(qiáng)大工具,適用于以下場(chǎng)景:

  • 超出 Number 類型范圍的整數(shù)運(yùn)算。

  • 需要高精度的小數(shù)運(yùn)算。

  • 科學(xué)計(jì)算或金融計(jì)算。

到此這篇關(guān)于js中BigNumber的使用詳解的文章就介紹到這了,更多相關(guān)js BigNumber使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • js實(shí)現(xiàn)左右兩側(cè)浮動(dòng)廣告

    js實(shí)現(xiàn)左右兩側(cè)浮動(dòng)廣告

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)左右兩側(cè)浮動(dòng)廣告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 在JavaScript中獲取請(qǐng)求的URL參數(shù)[正則]

    在JavaScript中獲取請(qǐng)求的URL參數(shù)[正則]

    在ASP.NET后臺(tái)代碼中,對(duì)于這樣的URL請(qǐng)求地址:http://www.abc.com?id=001,我們可以通過(guò)Request.QueryString["id"]的方法很容易的獲取到URL中請(qǐng)求的參數(shù)的值,但是要在前臺(tái)js代碼中獲取請(qǐng)求的參數(shù)的值,應(yīng)該怎么做呢?
    2010-12-12
  • 全面接觸神奇的Bootstrap導(dǎo)航條實(shí)戰(zhàn)篇

    全面接觸神奇的Bootstrap導(dǎo)航條實(shí)戰(zhàn)篇

    導(dǎo)航條(navbar)在Bootstrap中是一個(gè)獨(dú)立組件,導(dǎo)航條(navbar)和導(dǎo)航(nav)在Bootstrap中是有明顯區(qū)別的,本文全面接觸神奇的Bootstrap導(dǎo)航條,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 一文秒懂JavaScript DOM操作基礎(chǔ)

    一文秒懂JavaScript DOM操作基礎(chǔ)

    通過(guò)這篇文章幫助大家快速學(xué)習(xí)JavaScript DOM操作基礎(chǔ)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • js判斷屏幕分辨率的代碼

    js判斷屏幕分辨率的代碼

    由于現(xiàn)在的很多用戶的分辨率問(wèn)題,導(dǎo)致很多廣告會(huì)遮擋內(nèi)容或者對(duì)于不同分辨率的用戶不同的css樣式,就可以參考下面的代碼
    2013-07-07
  • 一個(gè)獲取第n個(gè)元素節(jié)點(diǎn)的js函數(shù)

    一個(gè)獲取第n個(gè)元素節(jié)點(diǎn)的js函數(shù)

    這篇文章主要介紹了一個(gè)獲取第n個(gè)元素節(jié)點(diǎn)的js函數(shù),功能還不完善 ,需要的朋友可以參考下
    2014-09-09
  • JavaScript 一道字符串分解的題目

    JavaScript 一道字符串分解的題目

    要求用js寫(xiě)一個(gè)函數(shù),對(duì)傳入的形如下網(wǎng)址字符串,返回對(duì)應(yīng)的對(duì)象。
    2011-08-08
  • JavaScript中Array.find()方法的使用與技巧

    JavaScript中Array.find()方法的使用與技巧

    在JavaScript中,Array.find是一個(gè)高效且易用的數(shù)組查找方法,和其他遍歷方法相比,Array.find不僅能更簡(jiǎn)潔地找到符合條件的第一個(gè)元素,返回的元素是原數(shù)組中的引用,本文給大家介紹了JavaScript中Array.find()方法的使用與技巧,需要的朋友可以參考下
    2025-02-02
  • javascript設(shè)計(jì)模式 – 原型模式原理與應(yīng)用實(shí)例分析

    javascript設(shè)計(jì)模式 – 原型模式原理與應(yīng)用實(shí)例分析

    這篇文章主要介紹了javascript設(shè)計(jì)模式 – 原型模式,結(jié)合實(shí)例形式分析了javascript原型模式相關(guān)概念、原理、應(yīng)用場(chǎng)景及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 原生JS輪播圖插件

    原生JS輪播圖插件

    本文主要介紹了原生JS輪播圖插件。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02

最新評(píng)論

杨浦区| 仁怀市| 拜泉县| 敦煌市| 佛冈县| 临海市| 东台市| 泾川县| 太仆寺旗| 陇川县| 宜兰市| 泸州市| 宁陵县| 剑川县| 博爱县| 师宗县| 晋州市| 四子王旗| 德格县| 平顶山市| 平陆县| 大悟县| 西吉县| 温宿县| 彝良县| 烟台市| 镇江市| 黑水县| 延津县| 洛宁县| 阿鲁科尔沁旗| 达拉特旗| 辰溪县| 晋宁县| 灌云县| 辽中县| 宜春市| 巨野县| 岑巩县| 平昌县| 长宁区|