2013-09-21 16 views
43

Czy jest jakaś funkcja w JavaScript, która pozwala ci na dzielenie liczb całkowitych, mam na myśli uzyskanie odpowiedzi dzielenia w int, a nie liczby zmiennoprzecinkowej.Jak wykonać dzielenie liczb całkowitych w javascript (Uzyskiwanie odpowiedzi dzielenia w int nie unoszą się)?

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

Ale chcę x mieć 45. Próbuję wyeliminować ostatnią cyfrę z numeru.

+2

Czy próbowałeś parseInt lub Math.floor? –

+0

@SB jak korzystać z parseInt dla tego problemu. – Nakib

+0

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

Odpowiedz

101
var answer = Math.floor(x) 

Mam szczerą nadzieję, że pomoże to przyszłym użytkownikom w wyszukiwaniu tego typowego pytania.

+1

dziękuję, że googlowałem, ale nie mogłem go znaleźć, dziękuję :) – Nakib

+13

lub zawsze możesz zakończyć swoją odpowiedź przed redakcją. :) – xr280xr

+27

Znajduję znaczącą ironię, że jest to najlepsza odpowiedź w moim wyszukiwaniu google, jak rozwiązać ten problem. –

6

ECMAScript, który jest specyfikacją JavaScript, nie ma liczb całkowitych. Liczby w kodzie JavaScript to IEEE floating points. Zazwyczaj musisz wpisać swoje liczby za pomocą jakiegoś mechanizmu, który symuluje matematykę całkowitą, ale otrzymasz przybliżenie. Na przykład plik Dropbox Datastore API robi to za pomocą zestawu SDK JavaScript, ponieważ API ma typ int64, który próbuje obsługiwać na różnych platformach. Prawdopodobnie istnieje biblioteka, z której możesz już korzystać.

16
var x = parseInt(455/10); 

Funkcja parseInt() przetwarza ciąg i zwraca całkowitą.

Parametr podstawa jest wykorzystywana do określenia, które systemie liczbowym być stosowane, na przykład, podstawa 16 (szesnastkowo), wskazuje, że liczba w ciągu powinien być przetwarzany z szesnastkowym w cyfry.

Jeśli parametr radix jest pominięty, JavaScript zakłada następujące:

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

Jest to nieefektywne, ponieważ ma niejawne wywołanie 'number.toString()', po którym następuje "parsowanie", które jest stosunkowo kosztowne w porównaniu do 'Math.floor'. Nie ma gwarancji, że 'parseInt' zaakceptuje argument" liczba ". – Dai

Powiązane problemy