Целые числа в JavaScript

Я новичок в Javascript, так что простите меня, если я буду казаться глупым, потому что я изучил Javascript из W3Fools (которые действительно трудные учебники - t объяснять все, что я хочу знать, но все, что я, вероятно, могу угадать из своего опыта с С++).

Я могу переключиться на MDN, но если вы можете порекомендовать любые другие учебники, это будет здорово.

В любом случае, вот мой вопрос:

Я просто прочитал несколько строк этого и, по-видимому:

Номера в JavaScript "64-битный формат с двойной точностью IEEE 754", согласно спецификации. У этого есть несколько интересных последствия. Нет такой вещи, как целое число в JavaScript, так что у вас есть быть осторожным с вашим арифметика, если вы привыкли к математике в C или Java.

Я уже видел, что существует несколько типов данных (для переменных), с которыми я привык с С++. Но я не ожидал, что все числа будут автоматически float s. Нет ли способа использовать int egers, а не float? Будет ли в будущем версия поддержки JavaScript int s?

Ответ 1

В Javascript действительно только несколько типов данных: объекты, числа и строки. Когда вы читаете, номера JS - это все 64-битные поплавки. Нет ints.

У Firefox 4 будет поддержка Typed Arrays, где у вас могут быть массивы реальных int и т.д. https://developer.mozilla.org/en/JavaScript_typed_arrays

До тех пор существуют хакерские способы хранения целочисленных массивов в виде строк и выщипывание всех целых чисел с помощью charCodeAt().

Ответ 2

Я не думаю, что он когда-либо будет поддерживать целые числа. Это не проблема, так как каждое беззнаковое 32-битное целое число может быть точно представлено как 64-битное число с плавающей запятой.

Современные движки JavaScript могут быть достаточно умны, чтобы генерировать специальный код, когда числа целые (с защитными проверками, чтобы убедиться в этом), но я не уверен.

Ответ 3

Используйте это:

function int(a) { return Math.floor(a); }

И вы можете использовать его так:

var result = int(2.1 + 8.7 + 9.3); //int(20.1)
alert(result);                     //alerts 20

Ответ 4

Существует нулевая поддержка целых чисел. Это должно быть простым вопросом округления переменной каждый раз, когда вам это нужно. Накладные расходы на производительность неплохие.

Ответ 5

Если вам действительно нужно использовать целые числа, просто используйте метод пола для каждого числа, с которым вы сталкиваетесь.

Кроме того, свободная типизация Javascript является одной из сильных сторон.