2014-03-03 62 views
-1

是否有任何一行代碼可用於計算程序中的位數?我的意思是說,可以在那裏引用一個類(例如字符串的String.length),它可以用來計算一個數字中的位數?如何計算no。在java中的數字的位數?

+0

你有什麼嘗試? –

+0

將int轉換爲字符串並使用此方法 – Kick

+0

您具有數值(int,long,double,char)還是作爲String? –

回答

0
int a = 125846; 
System.out.println("Length is "+String.valueOf(a).length()); 

輸出:

Length is 6 
0
int bubba = 56733; 
System.out.println(String.valueOf(bubba).length()); 

輸出:5

1
int len = ("" + number).length(); 
+1

我認爲這是一個不錯的解決方案,有點忽略:) – ktm5124

0

如果你想避免轉換爲你總是可以這樣做將String.valueOf(

5

一個String(並轉換爲double再換一個int代替):

digits = int(Math.log10(a)) + 1; 

如果您還需要處理負數:

digits = int(Math.log10(Math.abs(a))) + 1; 
// uncomment the following line to count the negative sign as a digit 
// if (a < 0) { digits += 1; } 
+0

+1,因爲日誌方法比字符串轉換速度快大約20倍。 – Danstahr

+1

如果'a'爲'0',則需要特殊處理。 –

1

使用

Math.floor(Math.log10(num)) + 1 

的整數。使用

String.valueOf(num).length() 

爲別的

0
Integer.toString(19991).length(); 
+0

我將這段代碼複製到了我的blueJ上,但它不能編譯。 – Niluu

+0

該方法被稱爲'toString()'。請記住,Java約定是該方法以小寫開頭,大寫的類。 – Christian

+0

錯字,對不起。更新。 –