二つの値が異なるデータ型の場合、Javaは自動的に2つのデータ型の大きなへの値のいずれかを促進しますか?

kaka :

ルールは、2つの値が異なるデータ型を持っている場合、Javaは自動的に2つのデータ型の大きなへの値のいずれかを促進することを言いますか?

以下のコードでは、yに割り当てられた値は、xの値よりも大きくなっています。したがって、考慮にルールを取って、印刷された値が「フロート」でなければなりませんが、代わりにそれは「ダブルを印刷。それがフロートの代わりにダブルを印刷し、なぜあなたはしていただけますか?

    Double x = 3.21; 

    Float y = 4.1f;

    Object o  = (x*y);

    System.out.println( o.getClass().getSimpleName() ); // prints out Double
Darkwyng:

「大きな」より多くの情報を保持できるデータ型に(一言で言えば)「>」値を参照するのではなく、例えばダブルフロートよりも好ましいとロングのIntよりも好ましいです。

これは、ここで説明されていますhttps://docs.oracle.com/javase/specs/jls/se13/html/jls-5.html#jls-5.6.2

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=18329&siteId=1