2011-05-05 50 views
1

在Objective CI翻番已經使用此代碼格式的值,使零個小數的值將無小數寫入,並與小數的值將與一個小數這樣寫:的Java:格式與小數

CGFloat value = 1.5; 
return [NSString stringWithFormat:@"%.*f",(value != floor(value)),value]; 

//If value == 1.5 the output will be 1.5 
//If value == 1.0 the output will be 1 

我需要做同樣的事情在Java中的雙重價值,我嘗試以下,但不工作:

return String.format("%.*f",(value != Math.floor(value)),value); 
+1

可能是[DecimalFormat](http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html)可以幫助你。 ???? : -/ – 2011-05-05 09:23:04

回答

1

how to print a Double without commas。這一定會給你一些想法。

準確地說,這會做

DecimalFormat.getInstance().format(1.5) 
DecimalFormat.getInstance().format(1.0) 
+0

非常感謝!有沒有可能爲此設置最大小數?那麼例如1.425會顯示爲1.5? – Martin 2011-05-05 13:34:04

+0

Martin,那麼在格式化之前,你應該使用'Math.floor()'或'Math.round()',因爲它不再需要格式化。 – 2011-05-05 13:52:07

0

你的意思是這樣?

return value == (long) value ? ""+(long) value : ""+value; 
0

不知道如何使用的String.format(「」)方法做到這一點,但你可以實現使用同一java.text.DecimalFormat中;見代碼示例:

import java.text.NumberFormat; 
import java.text.DecimalFormat; 
class Test { 
public static void main(String... args) { 
     NumberFormat formatter = new DecimalFormat(); 
     System.out.println(formatter.format(1.5)); 
     System.out.println(formatter.format(1.0)); 
    } 
} 

輸出分別爲1.5和1。