2011-07-07 110 views
2

我有一個程序,用一些數字輸出進行算法計算。我希望這個輸出看起來不錯,程序仍然很快。我使用了DecumalFormat,但這使得它非常緩慢,但工作。 有沒有辦法設置默認數字輸出,所以我不需要DecimalFormat?java:默認數字格式

Locale deLocale = new Locale("de_DE"); 
// should be format: ###,###.### 123.456,789  de_DE 

Locale.setDefault (deLocale); 

double f=-123456.123458998; 
System.out.println (""+f+""); // I wourld expect -123.456,123 
// but the output is -123456.123458998 

任何想法?謝謝! chris

+1

你真的輸出了很多格式化它們的數字是減慢你的速度嗎?誰能希望實際**閱讀**這些數字?或者換句話說:我敢肯定**,你可以格式化數字**比任何人都可以閱讀的速度更快。 –

+0

如果輸出格式化的速度是一個值得關注的問題,那麼可以考慮將原始數據輸出的生成和格式良好的輸出分割爲不同的線程或進程。清理出原始數據並在稍後格式化。 – sudocode

回答

0

您需要查看Customizing Format

您需要一個###,###.### - de_DE模式。

String pattern= "###,###.###"; 
DecimalFormat myFormatter = new DecimalFormat(pattern); 
double f=-123456.123458998; 
String output = myFormatter.format(f); 
System.out.println(f+ " " + pattern + " " + output); 

編輯:使用Predefined format,如果你不希望自己的模式。

+0

至於我看到這個網站只顯示如何設置每個輸出的格式。這對我來說很慢。我想要一致設定。 – chris01

+0

請參閱http://download.oracle.com/javase/tutorial/i18n/format/numberFormat.html –

+1

對不起,但在所有這些示例中,我都看到格式調用(對我來說太昂貴了)。 我正在尋找一種方法來告訴java通常格式化數字。 – chris01