2012-12-04 39 views
0

我需要一行代碼,我可以用小數點後得到的數字後顯示的數字,當我執行 下面的代碼:我如何格式化我的結果小數點

double results = 1500/1000; 


     txtview.setText("K " + resultsoldk); 

我需要結果來包含提醒。

+1

什麼是resultoldk?你在結果中獲得devision結果,但在textView中使用resultsoldk? –

+0

[Format Float to n decimal places]的可能重複(http://stackoverflow.com/questions/5195837/format-float-to-n-decimal-places) –

回答

1

你可以施放使用雙象下面

double results = (double)1500/1000; 

您也可以格式化使用的DecimalFormat

DecimalFormat df = new DecimalFormat("0.00##"); 
String formattedResult=df.format(results); 
+0

謝謝Rasel,這很有幫助。 –

2

結果的問題是,

double results = 1500/1000; 

結果是1.0,不是1.5,因爲你在做整數除法。確保在進行除法時至少有一個數字是浮點數。例如:

// By adding .0 you make it a double literal instead of an int literal 
double results = 1500.0/1000; 
1

可以使用String.format(...)方法格式化字符串這樣的:

txtview.setText(String.format("K %f", resultsoldk)); 

然而,這不會在你的情況下工作。當你分割兩個整數時,結果將是一個整數(沒有餘數)。之後它會轉換爲雙精度(因爲您將它分配給雙精度),但此時精度已經丟失。您必須至少轉換的整數中的一個,以一個雙之前,你把他們:

double results = (double)1500/1000; 

,或者,如果你使用常量

double results = 1500.0/1000; 

double results = 1500/1000.0; 

甚至

double results = 1500.0/1000.0; 
+1

這不是你如何使用String.format。正確的方法是'String.format(「K%f」,resultsoldk)'我知道這很愚蠢,但這就是他們在Sun設計這種方法的方式。 – Natix

+0

你是對的。我在Python中編程很多,有時候我有點困惑;) –

0
String strResult = Double.toString(d); 
strResult = strResult.replaceAll("\\d?\\.", ""); 

不知道我是否得到它,但如果你想要的是點後的數字,那麼你可以使用這個正則表達式。