2010-11-15 85 views

回答

1

嘗試此圖案代替:##,###.##

DecimalFormat df = new DecimalFormat("##,###.##"); 
System.out.println(df.format(1.00)); 
System.out.println(df.format(1.23)); 

打印:

1 
1.23 

在圖案的0顯示零爲 「0」,而表示#零爲不存在。

1

似乎是你可以解決與本地問題,使用Frech作爲您的本地十進制格式。那麼你會得到','而不是'。'。

NumberFormat f = NumberFormat.getInstance(local); 
if (f instanceof DecimalFormat) { 
    ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true); 
} 

或下面你可以做到這一點

DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setDecimalSeparator(','); 
DecimalFormat format = new DecimalFormat("###.00",symbols); 
System.out.println(format.format(1.22)); 
2
NumberFormat format = NumberFormat.getNumberInstance(); 
format.setMaximumFractionDigits(2); 
format.setMinimumFractionDigits(0); 

System.out.println(format.format(1.23)); 
System.out.println(format.format(1.0)); 
1

也許這會有所幫助。

public class Main { 

    public static void main(String[] args) { 

     double f1 = 1; 
     System.out.printf("f1: %.2f%n", f1); // prints f1: 1.00 

     double f2 = 1.23; 
     System.out.printf("f2: %.2f%n", f2); // prints f2: 1.23 

    } 
} 
1

試試這個:

改寫asela的和grodriguez的答案

的DecimalFormatSymbols符號=新的DecimalFormatSymbols(); symbols.setDecimalSeparator(','); DecimalFormat format = new DecimalFormat(「###。##」,symbols); System.out.println(format.format(1.00)); System.out.println(format.format(1.23));

輸出:

1,23

乾杯!

-Saligh

1

如果你的語言環境,國家設置,有小數逗號作爲小數點分隔符,那麼它已經被Java處理,像瑞典語言環境:

double number = 1.23;  
double otherNumber = 1.00; 

System.out.println(NumberFormat.getInstance(new Locale("sv")).format(number)); 
System.out.println(NumberFormat.getInstance(Locale.ENGLISH).format(number)); 

System.out.println(NumberFormat.getInstance(new Locale("sv")).format(otherNumber)); 
System.out.println(NumberFormat.getInstance(Locale.ENGLISH).format(otherNumber)); 

它打印

1,23
1.23