JavaScript Преобразование чисел при вычислениях

Всем привет. Столкнулся с такой странностью при вычислениях. Если такая тема уже была, буду рад ссылкам. Есть скрипт, в котором выполняется такое выражение i*1024*1024. Так вот, если значение этого выражения меньше, чем 100000000000, или больше чем 999999999999, то число получается правильное. Но если значение попадает в этот "волшебный" диапазон, результат может быть такой:

95368*1024*1024 = 100000595967.:
95369*1024*1024 = 100001644543.:
95370*1024*1024 = 10000269311:
95371*1024*1024 = 100003741696

Т.е. некоторые значения получаются правильными, а у некоторых появляются точка, двоеточие. Понятно, что в таком случае возникает ошибка. Предвижу вопрос: JavaScript не самой свежей редакции. Читал ECMA 262-3 §9.8.1, там что-то описывается про преобразование чисел, но не до конца понятно, как это происходит. Может кто-нибудь привести пару примеров. Но в любом случае, с чем это может быть связано?


Ответы (0 шт):