2012-03-02 13 views
8

selam Yukarıdaki kod "totalmemory" inDize oluşturucu kullanılarak java'da iki ondalık basamağa nasıl yazdırılır? i dize oluşturucudaki bölünmesi ve bana kodumu göstermeme izin o dize oluşturucu yazdırma sonra yazdırmaya çalışıyorum

string.append("Memomry usage:total:"+totalMemory/1024/1024+ 
"Mb-used:"+usageMemory/1024/1024+ 
" Mb("+Percentage+"%)-free:"+freeMemory/1024/1024+ 
" Mb("+Percentagefree+"%)"); 

ve "freememory" noktasında çift tipi olan bayt değere sahiptir aşağıda gösterildiği gibi değil boş i "Mb'a" ve "string" bunu elde etmek için "1024" iki kez bölerek böylece dize oluşturucu değişken bu kodu kullandıktan sonra i basitçe, o sonucu elde bir am basıyorum

Used Memory:Memomry usage: 
total:13.3125Mb-used:0.22920989990234375Mb (0.017217645063086855%) 
-free:13.083290100097656Mb (0.9827823549369131%) 

Bu pattre'de kullanılan "kullanılan: 2345.25" gibi, ikiye bölen yüzdesi ve kullanılan ve boş bellek değerlerini mb olarak almak istiyorum n

+0

Neden 'StringBuilder'ı kullanıyorsunuz? Bu problem için yanlış bir teknolojidir. Cevapları bakın ... – EJP

cevap

12

String.format() nasıl?

System.out.println(String.format("output: %.2f", 123.456)); 

Çıktı:

output: 123.46 
2

, biz biçimlendirebilir DecimalFormat kullanarak bu

double d = 1.234567; 
    DecimalFormat df = new DecimalFormat("#.##"); 
    System.out.print(df.format(d)); 

gibi biz görmek istedim yol deneyin Önerileriniz için Advance

Teşekkür

Umutlar hatırlıyorum.

+0

Ayrıca bu SO cevabı bakın http://stackoverflow.com/a/5710406/713414 – Jayy

1

İki ondalık basamağa yazdırmak için DecimalFormat kullanabilirsiniz. Yani, 2345.25 yazdırır

NumberFormat f = new DecimalFormat("#.00"); 
System.out.println(f.format(x)); 

yazardı, iki ondalık basamaklı x = 2345.2512 yazdırmak için.

1

o NumberFormat kullanmak mümkündür ve bu sorunla ilgili alt sınıf DecimalFormat olsa bile, bu sınıflar uygulamanız için gerekmeyebilir işlevsellik çok sağlar.

Amaç güzel bir şekilde yazdırılıyorsa, String sınıfının biçim işlevini kullanmanızı öneriyorum. Belirli kodu için bu şekilde görünecektir:

string.append(String.format("Memomry usage:total:%1.2f Mb-used:%1.2f Mb(%1.2f %%)-free:%1.2f Mb(%1.2f %%)",totalMemory/1024/1024,usageMemory/1024/1024,Percentage,freeMemory/1024/1024,Percentagefree)); 

tüm sayılar bakılmaksızın dizeleri ayrıştırılan veya dizeleri biçimlendirilmiş ediliyor bakılmaksızın temsil edildiği bir standart biçimi belirtmek niyetinde, o zaman ben tavsiye ederim * Format sınıflarının singletonlarını kullanarak. Standart biçimleri kullanmanıza ve yöntemler arasında biçim açıklamalarını iletmenize izin verir.

Bu, uygulamanızda kullanmak için doğru yöntemi seçmenize yardımcı olur umarım.