Я хотел бы разделить две новые переменные типа BigInt
на друг друга и получить Number
в качестве результата. Какой самый точный способ сделать это? Теперь у меня есть это:
function div (numerator: BigInt, denominator: BigInt): number {
const significantExponent = 350
const division = numerator / denominator
const remainder = numerator % denominator
const enlargedRemainder = remainder * BigInt(10) ** BigInt(significantExponent)
const decimals = enlargedRemainder / denominator
return Number(division) + +(decimals + 'e-' + significantExponent)
}
Например:
div(10n**400n, 10n**700n) === 1e-300
div(2n**1024n, 2n**2048n) === 2**-1024