Каков наилучший метод для преобразования с плавающей запятой в целое число в JavaScript? - PullRequest
29 голосов
/ 25 сентября 2008

Существует несколько различных методов преобразования чисел с плавающей запятой в целые числа в JavaScript. У меня вопрос: какой метод дает наилучшую производительность, является наиболее совместимым или считается наилучшим?

Вот несколько известных мне методов:

var a = 2.5;
window.parseInt(a); // 2
Math.floor(a);      // 2
a | 0;              // 2

Я уверен, что есть и другие. Предложения?

Ответы [ 12 ]

0 голосов
/ 25 сентября 2008

Похоже, что вопрос задается конкретно о преобразовании из числа с плавающей точкой в ​​int. Насколько я понимаю, способ сделать это - использовать toFixed. Итак ...

var myFloat = 2.5;
var myInt = myFloat.toFixed(0);

Кто-нибудь знает, является ли Math.floor() более или менее производительным, чем Number.toFixed()?

0 голосов
/ 25 сентября 2008

parseInt (), вероятно, лучший. a | 0 не делает то, что вам действительно нужно (он просто присваивает 0, если a является неопределенным или нулевым значением, что означает, что пустой объект или массив проходит тест), а Math.floor работает с помощью некоторой хитрости типа (в основном это вызывает parseInt () в фоновом режиме).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...