我正在尝试Java9功能JShell。我无法设置浮点值:
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
这是Java过度敷衍了事。
文字 3.5
的类型是双精度型
,您将它分配给浮点数
。
由于可能的< code>float集合必然是可能的< code>double集合的子集,因此会出现转换时精度丢失的警告。
为了简单起见,使用< code>3.5f来表示< code>float文字。
但请注意,3.5
可以精确地用双精度
和浮点数
表示,因此在这种特定情况下,错误是胡扯。
这就是Java的行为(如现有答案所述)。JShell完全遵循Java语法和语义——这一点很重要,这样您就不会开发错误的代码。