math for big numbers?
SO question
Я пытаюсь работать с большими числами без потери точности но пока не нашел ни одного решения...
Big numbers with fraction support:
I want to perform math operation with no precision loss.How can I do it using JavaScript?
First I tried decimal.js, but it does not preserve precision as you see in next example:
import {Decimal} from 'decimal.js';const a1 = new Decimal(1);
const a2 = new Decimal(3);console.log(a1.div(a2).toFraction()); // should be `1/3` but I get `33333333333333333333/100000000000000000000`
Next I tried fraction.js but it does not work with large numbers, for example:
import Fraction from 'fraction.js';const n1 = new Fraction("99999999999999999999999999999999999999999999999");
const n2 = new Fraction("99999999999999999999999999999999999999999999990");console.log(+(n1.sub(n2))) // should be 9, but I get 0
Are there any solutions to work with relative large numbers(lets say same as decimal.js supports) but with high precision(same as fraction.js supports).
I checked out that mathjs uses fraction.js under the hood, so no any advantages for large numbers:
import * as math from "mathjs";const a1 = math.fraction(math.number("99999999999999999999999999999999999999999999999"))
const a2 = math.fraction(math.number("99999999999999999999999999999999999999999999990"))console.log(+(math.subtract(a1, a2))) // should be 9 but I get 0
Я как-то натыкался на статью в русскоязычном сегменте, там про поиск решений был. Попробуйте поискать.
Обсуждают сегодня