-3

以下のコードの一部は、小数点以下2桁のdoubleを返すようにしたいメソッドの1つを示していますが、価格は文字列であると言っています。これはなぜですか?

public Double calculate(double k, double m, int l, int n, double hr){
double price = 10.00;

 NumberFormat nf = NumberFormat.getNumberInstance();
    nf.setMaximumFractionDigits(2);

//ここでの方法

 return nf.format(price);
4

3 に答える 3

2

を計算するときdouble、コンピュータがそれをメモリに保存する方法は、それをどのように表示したいかをまったく考慮していません。プロパティのない値です。

を使用NumberFormatすることにより、メモリに格納されている値を取得し、必要な方法で操作するコードを作成します。を呼び出すと、ドキュメントからわかるnf.format()aが返されます。String

関数からフォーマットされた数値を返したい場合は、戻りタイプをに設定する必要がありますString。それでも値を保持する必要がある場合は、price価格を返し、コードの後半で表示する必要があるときにフォーマットを完了することができます。

于 2013-03-15T18:14:32.890 に答える
1

http://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html

それがメソッドが行うことになっていることです!

プロトタイプは、文字列を返すと言っています。

String format(double number); //Specialization of format.
于 2013-03-15T18:13:02.457 に答える
-1

formatメソッドが文字列を返すため、価格は文字列であると言っています。

多分このようなことを試してみてください

return Double.parseDouble(nf.format(price));

于 2013-03-15T18:13:05.890 に答える