Bigdecimal github javascript

Thư viện tương tự như bignumber. js, nhưng ở đây độ chính xác được chỉ định theo các chữ số có nghĩa thay vì số thập phân và tất cả các phép tính được làm tròn đến độ chính xác (tương tự như mô-đun thập phân của Python) thay vì chỉ các phép tính liên quan đến phép chia

Thư viện này cũng bổ sung các hàm lượng giác, trong số các hàm khác và hỗ trợ các lũy thừa không nguyên, khiến nó trở thành một thư viện lớn hơn đáng kể so với bignumber. js và thậm chí nhỏ hơn lớn. js

Để biết phiên bản nhẹ hơn của thư viện này không có các hàm lượng giác, hãy xem phần thập phân. ánh sáng js

Trọng tải

Thư viện là tệp JavaScript thập phân duy nhất. js hoặc mô-đun ES số thập phân. mjs

trình duyệt

<script src='path/to/decimal.js'>script>

<script type="module">
  import Decimal from './path/to/decimal.mjs';
  ...
script>

Nút. js

npm install decimal.js

const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';

Sử dụng

Trong tất cả các ví dụ bên dưới, dấu chấm phẩy và lệnh gọi

const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
2 không được hiển thị. Nếu một giá trị được nhận xét nằm trong dấu ngoặc kép, điều đó có nghĩa là _______2_______2 đã được gọi trên biểu thức trước đó

Thư viện xuất một hàm tạo duy nhất,

const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
4, hàm này mong đợi một đối số duy nhất là một số, chuỗi hoặc đối tượng Thập phân

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

Nếu sử dụng các giá trị có nhiều hơn một vài chữ số, bạn nên chuyển chuỗi thay vì số để tránh khả năng mất độ chính xác

// Precision loss from using numeric literals with more than 15 significant digits.
new Decimal(1.0000000000000001)         // '1'
new Decimal(88259496234518.57)          // '88259496234518.56'
new Decimal(99999999999999999999)       // '100000000000000000000'

// Precision loss from using numeric literals outside the range of Number values.
new Decimal(2e+308)                     // 'Infinity'
new Decimal(1e-324)                     // '0'

// Precision loss from the unexpected result of arithmetic with Number values.
new Decimal(0.7 + 0.1)                  // '0.7999999999999999'

Cũng như các số trong JavaScript, các chuỗi có thể chứa dấu gạch dưới dưới dạng dấu phân cách để cải thiện khả năng đọc

________số 8_______

Các giá trị chuỗi ở dạng ký hiệu nhị phân, thập lục phân hoặc bát phân cũng được chấp nhận nếu bao gồm tiền tố thích hợp

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'

// Using binary exponential notation to create a Decimal with the value of `Number.MAX_VALUE`.
x = new Decimal('0b1.1111111111111111111111111111111111111111111111111111p+1023')
// '1.7976931348623157081e+308'

Các trường hợp thập phân là bất biến theo nghĩa là chúng không bị thay đổi bởi các phương thức của chúng

0.3 - 0.1                     // 0.19999999999999998
x = new Decimal(0.3)
x.minus(0.1)                  // '0.2'
x                             // '0.3'

Các phương thức trả về Số thập phân có thể được xâu chuỗi

x.dividedBy(y).plus(z).times(9).floor()
x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').ceil()

Nhiều tên phương thức có bí danh ngắn hơn

x.squareRoot().dividedBy(y).toPower(3).equals(x.sqrt().div(y).pow(3))     // true
x.comparedTo(y.modulo(z).negated() === x.cmp(y.mod(z).neg())              // true

Hầu hết các phương thức của các đối tượng

const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
0 và
const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
1 của JavaScript đều được sao chép

npm install decimal.js
0

Và có các phương thức

const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
7 và
const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
8, vì
const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
9 và
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
0 là các giá trị
const Decimal = require('decimal.js');

import Decimal from 'decimal.js';

import {Decimal} from 'decimal.js';
4 hợp lệ

npm install decimal.js
1

Ngoài ra còn có một phương thức

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
2 với đối số mẫu số tối đa tùy chọn

npm install decimal.js
2

Tất cả các phép tính được làm tròn theo số chữ số có nghĩa và chế độ làm tròn được chỉ định bởi các thuộc tính

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
3 và
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
4 của Hàm tạo thập phân

Để sử dụng nâng cao, có thể tạo nhiều hàm tạo thập phân, mỗi hàm có cấu hình độc lập riêng áp dụng cho tất cả các số thập phân được tạo từ nó

npm install decimal.js
3

Giá trị của Số thập phân được lưu trữ ở định dạng dấu phẩy động theo các chữ số, số mũ và dấu của nó, nhưng các thuộc tính này phải được coi là chỉ đọc

Có BigDecimal trong JavaScript không?

BigDecimal cho Javascript là triển khai Javascript thuần túy của các số thập phân có dấu, có độ chính xác tùy ý, bất biến . BigDecimal hỗ trợ toán thập phân với độ chính xác tùy ý.

Làm cách nào để xác định một giá trị số trong JavaScript?

Trong JavaScript, số là kiểu dữ liệu nguyên thủy. Ví dụ: const a = 3; . 13; . Bạn có thể sử dụng ký hiệu hàm mũ e để bao gồm các số quá lớn hoặc quá nhỏ

BigDecimal có hỗ trợ chữ số thập phân không?

BigDecimal đại diện cho một số thập phân có dấu tùy ý, có độ chính xác bất biến . Nó bao gồm hai phần. Giá trị chưa định tỷ lệ - một số nguyên chính xác tùy ý. Tỷ lệ – một số nguyên 32 bit biểu thị số chữ số ở bên phải dấu thập phân.

BigDecimal có thể chứa bao nhiêu chữ số?

Theo mặc định, số BigDecimal có độ chính xác "không giới hạn". Trên thực tế, giá trị chưa chia tỷ lệ tối đa bằng 2^Integer