Size: a a a

2020 March 11

DE

Denis Efremov in JS Liberty
Нахуй такие советы?
источник

DE

Denis Efremov in JS Liberty
Когда в JS ввели поддержку BigInt
источник

DE

Denis Efremov in JS Liberty
К тому же есть наши разработки https://github.com/zerobias/leemon
источник

DE

Denis Efremov in JS Liberty
Denis Efremov
new BigNumber(99999999999999999999)       // '100000000000000000000'
Просто когда ты работаешь с финансами, такие погрешности критичны
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
Нахуй такие советы?
new BigNumber(1.0000000000000001) будет равен единице, потому что в js 1.0000000000000001 === 1
запись из строки будет работать new BigNumber('1.0000000000000001') даже для куда больших значений после запятой
new BigNumber(99999999999999999999) аналогично с предыдущим 99999999999999999999 === 100000000000000000000
new BigNumber(0.7 + 0.1) снова неверно
нужно использовать правильные методы api (new BigNumber(0.7)).plus(new BigNumber(0.1)).toNumber() === 0.8

ну а BigInt вообще не могут в числа с плавающей точкой, они же Big Integer
источник

DE

Denis Efremov in JS Liberty
Sergey Garyaev
new BigNumber(1.0000000000000001) будет равен единице, потому что в js 1.0000000000000001 === 1
запись из строки будет работать new BigNumber('1.0000000000000001') даже для куда больших значений после запятой
new BigNumber(99999999999999999999) аналогично с предыдущим 99999999999999999999 === 100000000000000000000
new BigNumber(0.7 + 0.1) снова неверно
нужно использовать правильные методы api (new BigNumber(0.7)).plus(new BigNumber(0.1)).toNumber() === 0.8

ну а BigInt вообще не могут в числа с плавающей точкой, они же Big Integer
Просто они не нужны, эти плавающие точки.
источник

DE

Denis Efremov in JS Liberty
Можно все считать в целых и не подключать лишних либ
источник

DE

Denis Efremov in JS Liberty
В js может быть равен единице, но мне надо посчитать как будет в реальности
источник

DE

Denis Efremov in JS Liberty
Кстати, расстановку запятой мы делали операцией со строкой
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
Просто они не нужны, эти плавающие точки.
ок
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
Можно все считать в целых и не подключать лишних либ
например?
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
В js может быть равен единице, но мне надо посчитать как будет в реальности
передаешь большое число строкой и все будет так, как ты этого ожидаешь new BigNumber('1.0000000000000001')
источник

DE

Denis Efremov in JS Liberty
Sergey Garyaev
например?
Что например?
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
Что например?
буду признателен, если расскажешь как считать вещественные числа через целые, не подключая лишних либ и желательно без велосипедов
источник

DE

Denis Efremov in JS Liberty
Что значит как? Переводишь в целое и считаешь
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
Что значит как? Переводишь в целое и считаешь
невозможно, или ты знаешь как?
41.40338 + 2.17403
источник

DE

Denis Efremov in JS Liberty
4140338 + 217403
источник

DE

Denis Efremov in JS Liberty
И запятую после пятого справа
источник

DE

Denis Efremov in JS Liberty
Чего невозможного то?
источник

SG

Sergey Garyaev in JS Liberty
Denis Efremov
И запятую после пятого справа
прикольно)
источник