0

私が書いた

return java.lang.Math.round(someVariable*1.234234);

intを返す関数でeclipseに変換しますが、このようにするために(int)を含める必要がありました

 return (int) java.lang.Math.round

これ(int)は何をしていますか?

ありがとう

4

6 に答える 6

3

ドキュメントを見ると、

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

Math.roundパラメータがfloatでない場合、longを返します。

したがって、longをintにキャストする必要があります。

于 2012-10-17T09:40:35.997 に答える
0

このMath.round(double a)メソッドlongは、よりも大きいタイプのaを返しますint。したがって、あなたの行動は情報の損失をもたらす可能性があります。キャストの助けを借りて、コンパイラーにそのことを認識していることを明示的に伝える必要があります。

于 2012-10-17T10:03:06.120 に答える
0

Math.round呼び出されると、doubleが返されますlonglong結果をタイプにキャストするためにありintます...

于 2012-10-17T09:40:05.577 に答える
0

返された変数のデータ型であるをにキャストlongていintます。

于 2012-10-17T09:41:00.447 に答える
0

ラウンドには2つのオーバーロードがあります。

ロングラウンド(ダブルa);

int round(float a);

あなたが書いたconstはdoubleなので、floatにキャストする必要があります。試す:

return java.lang.Math.round(someVariable*1.234234f);
于 2012-10-17T09:43:15.780 に答える
0

を必要とする関数java.lang.Math.round(double a)の中にある関数の結果を返しています。したがって、関数プロトタイプの戻り型をからに 変更する必要があります。longint
intlong

于 2012-10-17T09:44:22.463 に答える