2010-02-06 24 views
9

Daha önce aşağıdaki ondalık biçime sahip:Kullanımı

private static final DecimalFormat decimalFormat = new DecimalFormat("0.00"); 

Yani,

o değiştirebilirsiniz: Keşke ne

0.1 -> "0.10" 
0.01 -> "0.01" 
0.001 -> "0.00" 

0.1 -> "0.10" 
0.01 -> "0.01" 
0.001 -> "0.001" 
olduğunu

Bunu kullanarak yapabilir miyim? DecimalFormat?

#
new DecimalFormat("0.00######"); 

bir rakam sondaki sıfırlar haricinde orada görüntülenmesi gerektiğini ifade eder:

cevap

20

DecimalFormat sınıfı "Güvenli Konu" değildir. Bu yöntem için statik Dize değişkeni kullanmanızdan daha iyidir, bu yöntemde, yönteminiz için DecimalFormat nesnesini tanımlamanız gerekir.

Statik değişken:

private static final String decimalFormatStr = "0.00#"; 

. yönteminde

Yerel değişken:

DecimalFormat decimalFormat = new DecimalFormat(decimalFormatStr); 
+3

+1. – Kevin

+0

Teşekkürler Kevin. Birçok kişi DecimalFormat'ı kullanırken bunu unutuyor. –

+0

İplik güvenliğini kullandığınız için teşekkürler. Tüm kodlarımı hızlıca gözden geçiririm ve düzeltirim :) –

13

Evet, bunu kullan. 0, bir sıfırlama olsa bile, her zaman bir rakamın görüntülendiği anlamına gelir. Biçimlendirilmiş dizgedeki ondalık basamak sayısı, noktadan sonra toplam 0 s ve # s sayısını aşmayacaktır, bu nedenle bu örnekte, ondalık basamaktan sonraki basamaklar kesilecektir.

+0

şerefe –

6

Böyle yapabilirsiniz:

NumberFormat f = NumberFormat.getNumberInstance(); 
f.setMinimumFractionDigits(2); 

System.out.println(f.format(0.1)); 
System.out.println(f.format(0.01)); 
System.out.println(f.format(0.001)); 
+0

olan sondaki sıfırları tutmak istedim 'NumberFormat' parçacığı güvenli? Diş emniyetini belirtmek için – WitVault