Java lossy conversion from long to int 提示

有时候在 Java 中对数据进行转换的时候可能会遇到提示:

java: incompatible types: possible lossy conversion from float to long

2021-09-27_15-02-00

这个提示的原因是因为现在你正在进行有损转换。

有损转换就是处理数据时信息的丢失,简单来说就是丢精度。

例如上面使用的代码:

        float floatNum = 10.12f;
        long longNum = floatNum;

这个时候编译都会出错的。因为 float 比 long 能够存储更多的精度,你不能直接将 float 赋值给 long。

当然你还是可以强制转换的。

例如使用下面的代码来进行强制转换。

        float floatNum = 10.12f;
        long longNum = (long) floatNum;

但是需要注意的是,如果进行强制转换,那么就很有可能丢精度。