有时候在 Java 中对数据进行转换的时候可能会遇到提示:
java: incompatible types: possible lossy conversion from float to long
这个提示的原因是因为现在你正在进行有损转换。
有损转换就是处理数据时信息的丢失,简单来说就是丢精度。
例如上面使用的代码:
float floatNum = 10.12f;
long longNum = floatNum;
这个时候编译都会出错的。因为 float 比 long 能够存储更多的精度,你不能直接将 float 赋值给 long。
当然你还是可以强制转换的。
例如使用下面的代码来进行强制转换。
float floatNum = 10.12f;
long longNum = (long) floatNum;
但是需要注意的是,如果进行强制转换,那么就很有可能丢精度。