2013-09-21 3 views
43

Есть ли какая-либо функция в Javascript, которая позволяет выполнять целочисленное деление, я имею в виду получение ответа на деление в int, а не в номере с плавающей запятой.Как сделать целочисленное деление в javascript (получение ответа на разделение в int not float)?

var x = 455/10; 
// Now x is 45.5 
// Expected x to be 45 

Но я хочу, чтобы х было 45. Я пытаюсь удалить последнюю цифру из числа.

+2

Вы пробовали ParseInt или Math.Floor? –

+0

@SB как ca я использую parseInt для этой проблемы. – Nakib

+0

@Nakib, 'parseInt (455/10);' – smerny

ответ

101
var answer = Math.floor(x) 

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

+1

спасибо, что я googled, но не смог найти, спасибо в любом случае :) – Nakib

+13

или вы всегда можете закончить свой ответ перед редакцией. :) – xr280xr

+27

Я нахожу существенную иронию, что это главный ответ в моем поиске в Google, как решить эту проблему. –

6

ECMAScript, который является спецификацией JavaScript, не имеет целых чисел. Номера в JavaScript: IEEE floating points. Вы, как правило, должны вводить свои номера с каким-то механизмом для подбора целочисленной математики, но вы просто получите приближения. Например, Dropbox Datastore API делает это для своего SDK JavaScript, поскольку API имеет тип int64, который пытается поддерживать разные платформы. Вероятно, есть библиотека, которую вы можете использовать, которую еще кто-то создал.

16
var x = parseInt(455/10); 

Функция ParseInt() анализирует строку и возвращает целое число.

Параметр Radix используется для указания, которое система счисления будет использоваться, например, Radix 16 (шестнадцатеричное) указывает на то, что число в строке должно быть разобрано из шестнадцатеричного числа к десятичное число.

Если параметр Radix опущен, JavaScript принимает следующее:

If the string begins with "0x", the radix is 16 (hexadecimal) 
If the string begins with "0", the radix is 8 (octal). This feature is deprecated 
If the string begins with any other value, the radix is 10 (decimal) 
+5

Это неэффективно, потому что у него есть неявный вызов 'number.toString()', следующий с помощью 'parse', который относительно дорог по сравнению с' Math.floor'. Не гарантируется, что 'parseInt' примет аргумент' number'. – Dai