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, время: 19:51. |