2011-07-29 17 views
0

私はダブルを持っており、小数点に変換しようとしています。 decimalformatを使用してこれを達成すると、次のようになります。小数点までの科学的表記

public void roundNumber(){ 
    double d = 2.081641999208976E-4; 
    JOptionPane.showMessageDialog(null,roundFiveDecimals(d)); 
} 

public double roundFiveDecimals(double d) { 
    DecimalFormat df = new DecimalFormat("#.#####"); 
    return Double.valueOf(df.format(d)); 
} 

出力を.00021にします。しかし、私は2.1E-4を得る。誰でも2.1E-4ではなく.00021を取得する方法を説明できますか?

答えて

9

あなたはDecimalFormatから結果を解析している - あなたはStringとしてそれをを返すようになります。

public String roundFiveDecimals(double d) { 
    DecimalFormat df = new DecimalFormat("#.#####"); 
    return df.format(d); 
} 

double値自体は、フォーマットの概念がありません - それだけの数です。値をテキストに書式設定することは、DecimalFormatの仕事です。そのテキストをに戻すと、に変換されると、その作業は失われてしまいます。

+0

ありがとう= D –

関連する問題