誰かがinty=(int)x;の行で型キャストがどのように機能するかを説明できますか?ありがとうございました
public class typecast
{
public static void main(String [] args)
{
double x=10.5;
int y=(int) x;
System.out.println("x="+x);
System.out.println("y="+y);
}
}
型キャストは、ナローイング型変換を実行します。正確な変換は、次のようにdouble値によって異なります。
int
、ゼロに向かって丸められます。Integer.MIN_VALUE
またはを与えます。Integer.MAX_VALUE
参照:JLS 5.1.3
注:「ゼロに向かって丸める」は次のように定義されます。
「Javaプログラミング言語は、浮動小数点値を整数(§5.1.3)に変換するときにゼロへの丸めを使用します。これは、この場合、数値が切り捨てられたかのように機能し、仮数ビットを破棄します。ゼロへの丸めは、その結果で選択されます。無限に正確な結果に最も近く、大きさが大きくないフォーマットの値。」
この特定のケースでは、double(変数x)を取得し、その値をint(変数y)に割り当てようとすると、コードはコンパイルされません。したがって、型をdoubleからintにキャスト(変換)するようにコンパイラーに明示的に指示する必要があります。その場合、この特定のケースでは、切り上げ/切り下げではなく、小数部分が削除されると思います。私はその最後の点について間違っている可能性があります。