An arbitrary-precision Decimal type for JavaScript.
功能
- 整數和浮點數
- 簡單但功能齊全的 API
- 復制 JavaScript 和物件的許多方法
Number.prototype
Math
- 還處理十六進制、二進制和八進制值
- 比 Java 的 BigDecimal JavaScript 版本更快,更小,也許更容易使用
- 無依賴關系
- 廣泛的平臺兼容性:僅使用 JavaScript 1.5 (ECMAScript 3) 功能
- 全面的檔案和測驗集
- 在引擎蓋下被數學使用.js
- 包括一個 TypeScript 宣告檔案:decimal.d.ts
安裝
該庫是單個 JavaScript 檔案 decimal.js 或 ES 模塊 decimal.mjs,
瀏覽器:
<script src='https://www.cnblogs.com/guojikun/p/path/to/decimal.js'></script>
<script type="module">
import Decimal from './path/to/decimal.mjs';
...
</script>
Npm:
npm install decimal.js
const Decimal = require("decimal.js");
import Decimal from "decimal.js";
import { Decimal } from "decimal.js";
使用
該庫匯出單個建構式Decimal
,該函式需要單個引數,即數字、字串或十進制實體,
x = new Decimal(123.4567);
y = new Decimal("123456.7e-3");
z = new Decimal(x);
x.equals(y) && y.equals(z) && x.equals(z); // true
加減乘除
const a = new Decimal(4);
const b = new Decimal(2);
a.add(b); // 6
a.sub(b); // 2
a.mul(b); // 8
a.div(b); // 2
超過 javascript 允許的數字
如果使用超過 javascript 允許的數字的值,建議傳遞字串而不是數字,以避免潛在的精度損失,
new Decimal(1.0000000000000001); // '1'
new Decimal(88259496234518.57); // '88259496234518.56'
new Decimal(99999999999999999999); // '100000000000000000000'
new Decimal(2e308); // 'Infinity'
new Decimal(1e-324); // '0'
new Decimal(0.7 + 0.1); // '0.7999999999999999'
可讀性
與 JavaScript 數字一樣,字串可以包含下劃線作為分隔符以提高可讀性,
x = new Decimal("2_147_483_647");
其它進制的數字
如果包含適當的前綴,則也接受二進制、十六進制或八進制表示法的字串值,
x = new Decimal("0xff.f"); // '255.9375'
y = new Decimal("0b10101100"); // '172'
z = x.plus(y); // '427.9375'
z.toBinary(); // '0b110101011.1111'
z.toBinary(13); // '0b1.101010111111p+8'
x = new Decimal(
"0b1.1111111111111111111111111111111111111111111111111111p+1023"
);
// '1.7976931348623157081e+308'
有關更多資訊,請參閱 doc 目錄中的 API 參考,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/555605.html
標籤:JavaScript
上一篇:JavaScript 顯示資料
下一篇:返回列表