私が電話したら
methodName(5, 1/2);
そしてサインがあります
public static int methodName(int x, double y){
}
またはの値でmethodName
受信しますか?y
0
0.5
int y = 1/2;
この時点で、y は 0 です。後で double にキャストしようとすると、0.0 になります。どのようにしてその値を取得したかは覚えておらず、その値が何であるかだけを覚えています。
1/2
編集: コンパイラはコンパイル時に実際に 0 に置き換えると思います。コードを文字通り同一にするint y = 0
int y = 1/2
除算には 1 (int) と 2 (int) を使用しているため、これは整数除算ですy = 0
(剰余 (%) は 1)。
0 に評価されます。
上記のコードでできることはあまりありません。
y を int として保存する特別な理由はありません。
代わりにこれを試してください:
double y = 1/2.0;
int y = 1/2;
このコードでは、y は 0 になります。
0.5として取得したい場合
次のコードを試してください。
double y = 1.0 * 1 /2; //y is 0.5
パラメータ(括弧)と混同していると思います。Java では、すべてのメソッドに一連のパラメーターがあります (exampleMethod() などの値を保持しない場合があります)。
パラメーターはメソッドに渡される変数であるため、コード内で次のように呼び出します。
methodName() initialize it with methodName(x,y);
メソッド内の x と y は、パラメーターを介して渡す値の単なるポインターです。この混乱を避けるために、変数に別の名前を付けることをお勧めします。例えば:
int x;
int y;
methodName(int argX, double argY)
{
}
また、質問に答えるために、int は格納された値を小数点で切り捨てるため、5.9 は 6 ではなく 5 に丸められます。したがって、y の浮動小数点変数が必要な場合は、float または double として宣言します。動作しますが、Java ライブラリのほとんどのメソッドは、float ではなく double をパラメーターとして受け取るように記述されています。