Android 错误:(415,32)返回(浮点)Math.sqrt(x*x+;y*y);

Android 错误:(415,32)返回(浮点)Math.sqrt(x*x+;y*y);,android,Android,我使用Android SDK 23棉花糖来确定前两个手指之间的距离 private float spacing(WrapMotionEvent event) { // ... float x = event.getX(0) - event.getX(1); float y = event.getY(0) - event.getY(1); return (Float)Math.sqrt (x * x + y * y);

我使用Android SDK 23棉花糖来确定前两个手指之间的距离

     private float spacing(WrapMotionEvent event) {
         // ...
         float x = event.getX(0) - event.getX(1);
        float y = event.getY(0) - event.getY(1);
        return (Float)Math.sqrt (x * x + y * y);
    }
警告信息

错误:(415,32)错误:不兼容的类型:无法将double转换为Float


Math.sqrt
返回一个
double
,即使输入是
float

您不能将
double
转换为
Float
(包装类型),除非显式地通过
Float
(原语类型)。。。但这没关系,因为您实际上不想要
Float
。方法的返回类型是
float
,因此只需转换为该类型即可:

return (float) Math.sqrt(x * x + y * y);

如果方法的返回类型是
Float
,则仍然可以使用同一行代码,并让编译器将自动装箱从
Float
添加到
Float
Math。即使输入是
Float
,sqrt
也会返回一个
double

您不能将
double
转换为
Float
(包装类型),除非显式地通过
Float
(原语类型)。。。但这没关系,因为您实际上不想要
Float
。方法的返回类型是
float
,因此只需转换为该类型即可:

return (float) Math.sqrt(x * x + y * y);
如果方法的返回类型是
Float
,那么仍然可以使用相同的代码行,并让编译器将自动装箱从
Float
添加到
Float