Что лучший метод должен преобразовать плавающую точку в целое число в JavaScript?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

29
задан indiv 10 August 2012 в 00:57
поделиться

8 ответов

Согласно этот веб-сайт :

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

Для округления чисел к целым числам один из Math.round, Math.ceil и Math.floor предпочтителен...

38
ответ дан Jason Bunting 28 November 2019 в 01:19
поделиться

Ответ был уже дан, но только быть ясным.

Пользуются библиотекой Math для этого. вокруг, перекройте или функции пола.

parseInt для преобразования строки к интервалу, который не является тем, что необходимо здесь

, toFixed для преобразования плавания к строке также не, что необходимо здесь

, Так как Математические функции не будут делать никаких преобразований в, или от строки это будет быстрее, чем любой другой выбор, который является неправильным так или иначе.

4
ответ дан AnthonyWJones 28 November 2019 в 01:19
поделиться
var i = parseInt(n, 10);

, Если Вы не определяете, основание оценивает как '010', будет рассматриваться как восьмеричный (и таким образом, результат будет 8 не 10).

2
ответ дан Walter Rumsby 28 November 2019 в 01:19
поделиться

Можно использовать Номер (a) .toFixed (0);

Или даже просто a.toFixed (0);

Редактирование:

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

var num = 2.7;  // typeof num is "Number"
num.toFixed(0) == "3"
3
ответ дан davenpcj 28 November 2019 в 01:19
поделиться

Вы могли также сделать это этот путь:

var string = '1';
var integer = a * 1;
-1
ответ дан 28 November 2019 в 01:19
поделиться

Вопрос, кажется, спрашивает конкретно о преобразовании от плавания до интервала. Мое понимание - то, что способ сделать это должно использовать toFixed. Так...

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

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

0
ответ дан Andrew Hedges 28 November 2019 в 01:19
поделиться

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

-4
ответ дан Jeff Hubbard 28 November 2019 в 01:19
поделиться

По-видимому, двойное побитовое-не является самым быстрым способом указать номер:

var x = 2.5;
console.log(~~x); // 2

Раньше здесь была статья, а сейчас получил 404: http://james.padolsey.com/javascript/double-bitwise-not/

Google хранит его в кеше: http://74.125.155.132/search?q=cache:wpZnhsbJGt0J:james.padolsey. com / javascript / double-bitwise-not / + double + bitwise + not & cd = 1 & hl = en & ct = clnk & gl = us

Но Wayback Machine спасает положение! http://web.archive.org/web/20100422040551/http://james.padolsey.com/javascript/double-bitwise-not/

7
ответ дан 28 November 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: