P.S.
alert((10000000000000000 == 10000000000000001)) :lol: |
alert((10000000000000000 === 10000000000000001)); |
Цитата:
|
Цитата:
напомню вопрос: Цитата:
Цитата:
|
Получил.
function max() {
var x=2;
while(x!=x+1) {
x*=2;
}
return x;
}
alert([
max()-1,
max(),
max()+1
].join('\n'));
Всем спасибо за внимание.Выдаются ли кому-то числа, отличные от 9007199254740991 и 9007199254740992? |
В каком месте здесь максимально допустимое число?
function max() {
var x=2;
while(x!=x+1) {
x*=2;
}
return x;
}
var maxValue = max();
alert([
maxValue-1, // 9007199254740991
maxValue, // 9007199254740992
maxValue + 10 // 9007199254741002
].join('\n'));
Читайте посты Amphiluke. |
Мне собственно нужно максимальное точное число, для параметра, преобразующегося из строки и, если параметр больше чем это число, применить преобразование в bigInt.
|
Максимальная точность и IEEE754 вещи несовместимые. Как уже было замечено, для чисел с плавающей точкой существует погрешность. Она зависит от того, насколько велико число. Если число мало, то и погрешность будет на уровне 10^-15. Если же Вы оперируете числами порядка 10^50, то будьте готовы к тому, что погрешность будет больше 1 (что и произошло в Вашем примере).
|
| Часовой пояс GMT +3, время: 16:15. |