На данный вопрос уже ответили:
Есть у меня в базе в колонке значение, например, 8722879621216817228, но при вытягивании обычным запросом из базы, последние три цифры превращаются в ноль -> 872287962121681700. Но и не только с базой эта проблема у меня возникает, она везде присутствует.
let a = 8722879621216817228;
console.log(a); //8722879621216817000
Как быть с данной проблемой, может кто-то ссылку на документацию знает, то буду благодарен, так как я ничего не нашёл по данной ситуации.
Вопрос, на который сослался модератор, закрывший этот вопрос как дубликат, хоть и содержит 3 ответа, однако несет мало информации о решении этой проблемы в разрезе javascript
.
В javascript Number
, без потери точности, может быть не больше 253-1 Number.MAX_SAFE_INTEGER
или меньше 1-253
Number.MIN_SAFE_INTEGER
Есть метод для проверки попадания числа в указанный диапазон:
Number.isSafeInteger()
console.log(Number.isSafeInteger(8722879621216817))
console.log(Number.isSafeInteger(872287962121681722800))
Сравнительно недавно появился BigInt
BigInt - позволяет использовать большие числа с высокой точностью
Чтобы создать BigInt
, добавьте суффикс n
в любой целочисленный
литерал. Например, 123
становится 123n
. Глобальную функцию BigInt
можно использовать для преобразования обычного числа в BigInt
. Другими
словами, BigInt (123) === 12
3n.
Чтобы получить BigInt
со значением больше 253 в конструктор BigInt()
можно передать строку содержащую число в десятичном формате.
let n1 = "123456789123456789";
let n2 = "1234567891234567890000000000000000000"
console.log(BigInt(n1).toString());
console.log(BigInt(n2).toString())
console.log((BigInt(n1)+BigInt(n2)).toString())
Поддержка, на 7 марта 2019, судя по MDN такая:
10.4.0 node.js
67 Chromium
65 Firefox
54 Opera
-- Edge
-- IE
-- Safari
-- Firefox Android
Для длинной арифметики, не зависящей от окружения можно использовать решения на чистом javascript, вотнекоторые из них:
bignuber.js
decimal.js
big.js
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не могу разобраться, autoNumeric работает только на первый элемент содержащий класс float, как сделать что бы сработало на всех элементах имеющих...
Возможно ли запустить 2 PlayerEndpoint с разными ссылками на одной странице? https://doc-kurentoreadthedocs