当前位置: 首页 > 知识库问答 >
问题:

错误:类型不兼容:可能存在从double到float的有损转换[duplicate]

经博延
2023-03-14

我一直在运行此代码并不断收到错误,不知道为什么。双倍漂浮?继续收到消息“错误:不兼容的类型:可能的有损转换从双精度到浮点型。转换如何转换是否有任何问题,因此没有错误 这是较大代码的一部分。

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

共有1个答案

蓝鸿哲
2023-03-14

你需要演员阵容。或者将< code>area声明为< code>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;
 类似资料: