2016-09-15 15 views
-2

double値を書式設定するには次のコードを使用しています。 たとえば、入力がの場合、出力のdouble値は34.00になります。ここで小数点以下2桁で変換する文字列

Double value = new Double(34); 
DecimalFormat decimalFormat =new DecimalFormat(); 
decimalFormat.applyPattern("#.00"); 
System.out.println("String format " + decimalFormat.format(value)); 
double formattedValue =Double.valueOf(decimalFormat.format(value)); 
System.out.println("double format " + formattedValue); 

出力:

文字列の形式34.00
ダブルフォーマット私はBigDecimalを使用したくない34.0

最終的な要件は、書式設定された値をダブルタイプのフィールドに格納することです。

+3

'double '値には「フォーマット」はありません。 –

+0

数値を数値で保存しています。 'double'は有効数字を保持しないので、あなたの文字列にいくつの数字があっても、それを印刷すると34.0になります。あなたはそれを印刷するときにダブルをフォーマットする必要があります。 –

+0

* formattedValue *には割り当てないでください。 * decimalFormat.format(value)*自体を印刷します(@Reimeusのように) – blackpen

答えて

1

doubleは、最初の例のように「任意の」種類のフォーマットにすることができますが、doubleの形式は内部的には変更できません。だから、あなたが何をしても、Stringに変換せずに、2行目の印刷を34.00にすることはできません。他のコメントを改めて表明

String formatted = String.format("%.0f", value); 

0

まあ、私は意味、...いつも

System.out.printf("value is %.0f\n", value); 

あるいは同様に、古き良きprintf関数がありますダブルダブルです。固有の表示形式はありません。書式設定は、それをどのように表示するかの関数です。

+0

短くて速い! – blackpen

関連する問題