2016-12-20 9 views
1

私はJava9の機能JShellを試していました。JShellでdoubleからfloatへの可逆変換が可能

jshell> float b = 3.5 
Error: 
| incompatible types: possible lossy conversion from double to float 
| float b = 3.5; 
jshell> float x =2 
x ==> 2.0 
+3

'3.5f'を試して値を割り当て、' doubleからfloatへの不可逆変換 'について調べよう –

+3

何が質問ですか? Javaでは '3.5'は' double'リテラルであることに留意してください。同等の 'float'リテラルは' 3.5f'です。 –

+0

ありがとうその仕事 – jos

答えて

4

それはJavaが不当にこせこせされています:私は、float値を設定することはできません よ。 リテラル3.5

タイプdoubleで、あなたはfloatにそれを割り当てています。

floatの可能なセットは、必然的にdoubleのセットのサブセットであるため、変換の警告が失われる可能性があります。

簡単に使えるように、3.5ffloatのリテラルを示します。

しかし3.5正確doublefloatの両方で、エラーがナンセンスである。この特定機会にして表すことができることに注意してください。

+1

ありがとう@bathsheba – jos

+1

古き良き時代には、コンパイラはプログラマが何をしているのかを知っていると想定していました。 – Bathsheba

0

これはJavaの動作です(既存の回答に記載されています)。 JShellはJava構文とセマンティクスを正確に継承しています。これは間違ったコードを作成しないように重要です。

関連する問題