我需要一行代碼,我可以用小數點後得到的數字後顯示的數字,當我執行 下面的代碼:我如何格式化我的結果小數點
double results = 1500/1000;
txtview.setText("K " + resultsoldk);
我需要結果來包含提醒。
我需要一行代碼,我可以用小數點後得到的數字後顯示的數字,當我執行 下面的代碼:我如何格式化我的結果小數點
double results = 1500/1000;
txtview.setText("K " + resultsoldk);
我需要結果來包含提醒。
你可以施放使用雙象下面
double results = (double)1500/1000;
您也可以格式化使用的DecimalFormat
DecimalFormat df = new DecimalFormat("0.00##");
String formattedResult=df.format(results);
謝謝Rasel,這很有幫助。 –
結果的問題是,
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;
可以使用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;
這不是你如何使用String.format。正確的方法是'String.format(「K%f」,resultsoldk)'我知道這很愚蠢,但這就是他們在Sun設計這種方法的方式。 – Natix
你是對的。我在Python中編程很多,有時候我有點困惑;) –
String strResult = Double.toString(d);
strResult = strResult.replaceAll("\\d?\\.", "");
不知道我是否得到它,但如果你想要的是點後的數字,那麼你可以使用這個正則表達式。
什麼是resultoldk?你在結果中獲得devision結果,但在textView中使用resultsoldk? –
[Format Float to n decimal places]的可能重複(http://stackoverflow.com/questions/5195837/format-float-to-n-decimal-places) –