2013-02-04 27 views
0
String x = "39.33"; 
String result ; 
Double x1 = new Double(x); 
System.err.println("value :"+ x1); 
String[] parts = x1.toString().split("\\."); 

if(parts != null) 
{ 
if((Integer.parseInt(parts[1])) > 0) 
{ 
     result =x1; 

} 
else 
{ 
result= parts[0]; 
} 
} 

請讓我知道格式的最好方法/拆分值: 我需要的是....什麼是分割時處理雙重價值的最佳方式?

if x is 39 
so x1 is 39.0 
so i need result =39 

if x is 39.33 
so x1 is 39.33 
so i need result =39.33 

我不想使用拆分或條件檢查if((Integer.parseInt(parts[1])) > 0) ..請讓我知道這是最好的方法嗎?

+3

是什麼的問題是什麼呢? –

+0

39.0和39之間有什麼區別嗎?如果你在顯示值時需要這種區別,只需在輸出前格式化你的輸出 – user902383

+0

我有類似於(「39.33」或「39.0」)的輸入...如果輸入是「39.33」,結果必須是39.33,或者如果輸入是「 39.0「的結果必須是39 – jcrshankar

回答

1

試試這個:

Double d = Double.parseDouble("35.0"); 
String result = NumberFormat.getNumberInstance().format(d.doubleValue()) 
System.out.println(result); 
+0

哇..我真的看這樣的答案只有.. 100%滿意我的期望 – jcrshankar

+0

雙d = Double.parseDouble( 「35.0」); String result = NumberFormat.getNumberInstance()。format(d)) – jcrshankar

+0

爲什麼我們需要d.doubleValue()) – jcrshankar

0

您只需要將數字讀取爲double並將其轉換爲int,這將有效地截斷數字。

0

你可以做

String x = "39.33"; 
long l = (long) Double.parseDouble(x); // == 39 

這將導致l是雙重的整數部分。 (提供的數量少於90億)

如果你真的想使用拆分,你可以做下面的,它會稍微慢一些,但是如果數字太大,會拋出異常。

long l = Long.parseLong(x.split("\\.")[0]); 
+0

我們可以用int來做嗎? – Abubakkar

+0

是的,只要數量少於20億。恕我直言,使用'int'沒有優勢。 –

+0

@Abu ..是的,只要這個數字少於40億左右。 ;) –

1

如果您將double轉換爲int,則小數位將被忽略。

對於這個問題,將是類似的東西:

String result; 
String x = "39.33"; 
Double x1 = new Double(x); 
int xPre = x1.intValue(); 

if (x1 > xPre) { 
    result = x1; 
} else { 
    result = Integer.toString(xPre); 
} 
+0

您能否提供一些代碼作爲示例以使其更清晰? –

+0

在這兩種情況下(39.33「或」39.0「)只給出39個......我需要如果」39.33「結果必須是39.33或者」39.0「結果必須是39 – jcrshankar

+1

更新我的回答 – duffy356

-1
public static void main(String[] args) { 
    Double x = new Double("39.33"); 
    Double y = new Double("39.0"); 

    printDouble(x); 
    printDouble(y); 

} 

public static void printDouble(Double dbl){ 
    System.out.println(dbl.toString().replaceAll("[0]*$", "").replaceAll(".$", "")); 
} 
+1

嘿它截斷的價值.... 39.33至39.3休息一切都很好 – jcrshankar

相關問題