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

js中BigNumber的使用詳解

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

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 對象

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

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

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

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

(2) 基本運算

BigNumber 支持加、減、乘、除等基本運算:

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é)計數(shù)法
console.log(num.toExponential(4)); // "1.2346e+9"

3. 高級用法

(1) 鏈式調(diào)用

BigNumber 支持鏈式調(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é)計數(shù)法

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

4. 注意事項

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

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

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

// 錯誤:直接與 Number 類型運算
// const sum = a + b;

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

(2) 避免精度丟失

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

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

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

(3) 處理除零錯誤

BigNumber 會拋出除零錯誤:

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

5. 與其他庫的比較

特性BigNumber (bignumber.js)BigInt (原生)Decimal.js
支持大整數(shù)???
支持高精度小數(shù)???
支持科學(xué)計數(shù)法???
鏈式調(diào)用???
原生支持???

6. 總結(jié)

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

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

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

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

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

相關(guān)文章

  • js實現(xiàn)左右兩側(cè)浮動廣告

    js實現(xiàn)左右兩側(cè)浮動廣告

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

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

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

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

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

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

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

    js判斷屏幕分辨率的代碼

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

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

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

    JavaScript 一道字符串分解的題目

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

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

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

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

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

    原生JS輪播圖插件

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

最新評論

黑山县| 长汀县| 衡阳市| 明溪县| 昌图县| 青河县| 肇庆市| 玉环县| 兴隆县| 宜良县| 长葛市| 扶沟县| 翁牛特旗| 辽源市| 乌鲁木齐县| 攀枝花市| 崇阳县| 天津市| 昭苏县| 威信县| 忻城县| 民县| 玛多县| 津南区| 武穴市| 密山市| 安龙县| 灌南县| 河源市| 山丹县| 赤峰市| 元江| 辛集市| 黄陵县| 阿坝县| 安庆市| 循化| 延庆县| 景宁| 大兴区| 寿阳县|