错误:不兼容的类型:从double到float的转换可能有损



我一直在运行这段代码,并不断收到错误,不知道为什么。双倍浮动?保持接收消息";错误:不兼容的类型:从double到float的转换可能有损"转换有问题吗?如何进行转换,这样就不会出错这是一个更大代码的一部分。

public static float getAreaOfPentagon(float l) {
float area = Math.sqrt(5 * (5 + 2 * (Math.sqrt(5))) * l * l) / 4;
return area;
}

您需要进行强制转换。或者将area声明为double

float area = (float)(Math.sqrt(5 * (5 + 2 *
(Math.sqrt(5))) * l * l) / 4);

double area = Math.sqrt(5 * (5 + 2 *
(Math.sqrt(5))) * l * l) / 4;

旁白:在同一个等式中混合整数和浮点。这往往会导致灾难。使用双重文字可能更好。

double area = Math.sqrt(5.0 * (5.0 + 2.0 *
(Math.sqrt(5.0))) * l * l) / 4.0;

最新更新