これは誰にとっても簡単な質問かもしれませんが、「なぜそうなのか」という質問で頭が混乱します。
以下のコードでわかるように、float
変数を宣言して値を代入しました。このコードがコンパイルおよび解釈されるとpossible loss of precision
、浮動定数の Java インタープリターのデフォルトのデータ型が double であるため、エラーが発生します。
クエリ 1 : float が提供するバイト数に浮動定数が対応できるのに、アプリケーションで double のためにメモリを浪費する必要があるのはなぜでしょうか。
クエリ 2:ここで、指定するfloat a = 3.1415f ;
と出力が得られますが、a
変数に割り当てられているメモリの量が表示されます。
float a = 3.1415 ;
System.out.println("Value of a:"+a);
このハックを本当に理解したいのですが、なぜそうなのですか?