0

私はJavaの経験がまったくなく、テキストエディタを使用してコードを記述しているため、問題が何であるかがわかりません(コマンドラインから実行しています)エラーが表示され、それが何であるかはわかりますが、方法がわかりません。それを修正するには

System.out.print(String.format("%7d", Math.pow(n,2).toString()));

基本的に.toString() nだけ印刷すると機能しますが、べき関数はおそらく戻り型が原因でエラーが発生しますが、powはdoubleを返す必要があり、文字列形式%7dもおそらくdouble右ですか?

4

5 に答える 5

3

間違ったフォーマット指定子を使用しています。%d整数に使用されています。

Math.pow()doubleメソッドを呼び出せないプリミティブを返しますtoString()

%7sを使用してみてString、プリミティブのdouble値をWrapper type:-に変換します。

String.format("%7s", Double.valueOf(Math.pow(n,2)).toString())

ただし、引数をに変換する必要はありません。String直接使用できますdouble value%f-

String.format("%.3f", Math.pow(n,2));
于 2012-10-14T18:31:29.367 に答える
1

を使用せずfに使用する可能性があります。実際に実行できた場合(Quoiが指摘しているように、プリミティブからは実行できません)、使用済みオブジェクトを期待するsを使用できなくなります(この場合)。dtoStringtoStringFormatterNumberDouble

これがFormatterString.format使用しています。

于 2012-10-14T18:33:54.877 に答える
0

Math#pow(double,double)メソッドを呼び出すことができないプリミティブdouble値を返しますtoString。dの代わりにfを使用し、dは10進整数を表します。

 System.out.format("%7f", Math.pow(n,2));

コードを書くには、Eclipseまたはその他のエディターから始める方がよいでしょう。

于 2012-10-14T18:33:49.520 に答える
0

問題はtoStringメソッドにあります。%7dを意味するフォーマット指定子を指定しましたinteger。代わりに文字列を印刷することはできません。

于 2012-10-14T18:35:48.167 に答える
0

doubleの正しい形式は%dではなく%fなので、コードを次のように変更します。

 System.out.print(String.format("%7f",  Math.pow(n,2)));

も参照してください:リンク

于 2012-10-14T18:44:06.510 に答える