Error: incompatible types: possible lossy conversion from double to float

Error: incompatible types: possible lossy conversion from double to 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;