2013-08-09 12 views
5

Stoopid czas na pytania!długość całkowita w javascript

wiem, że w JavaScript trzeba przekonwertować liczbę całkowitą na łańcuch:

var num = 1024; 
len = num.toString().length; 
console.log(len); 

Moje pytanie brzmi: Dlaczego nie ma get właściwość length dla liczb całkowitych w JavaScript? Czy to coś, co nie jest często używane?

+2

Becau se 'length' jest długością w bajtach, a dla stringów ma sens jako zwykła "długość". Liczby całkowite mają standardową długość typu danych, więc nie ma potrzeby obliczania ich "długości". Jeśli odnosisz się do długości reprezentacji ciągów int - to oczywiste, że powinieneś najpierw przekonwertować ją na ciąg. –

Odpowiedz

9

Cóż, nie sądzę, że podanie właściwości długości do liczby będzie pomocne. Punkt jest długością ciągów znaków nie zmienia się poprzez zmianę reprezentacji.

na przykład można mieć ciąg podobny do tego:

var b = "sometext"; 

a jego długość nieruchomość nie zmieni, chyba że faktycznie zmienić sam napis.

Ale tak nie jest w przypadku liczb.

Ten sam numer może mieć te dwie reprezentacje:

var a = 23e-1; 
and 
var b = 2.3; 

Więc z tych dwóch reprezentacji jego jasne, że sama liczba może mieć wiele reprezentacji i tak, jeśli mają właściwości length z numerów będzie musiał zmienić z reprezentacją numb.er

+0

To prawda, że ​​wartość całkowita, a tym samym długość, zależy od podstawy systemu liczbowego. – Clergyman

+0

Może nie * bardzo * pomocny. Ale mógłbym go użyć. Podczas analizowania linii tekstu użytkownika; Chciałbym skorzystać z takiej funkcji, aby powiedzieć mi, ile dystansu użyto funkcji 'parseInt' od ciągu źródłowego. Bez konieczności przywracania go do ciągów tylko po to, aby je zobaczyć. (tj .: parsowanie 'x + 2464 + y * 42') –

2

należy ustawić zmienną toString() najpierw tak:

var num = 1024, 
str = num.toString(), 
len = str.length; 

console.log(len);