【问题标题】:Error: incompatible types: possible lossy conversion from double to float错误:不兼容的类型:从 double 到 float 的可能有损转换
【发布时间】:2020-09-28 03:31:34
【问题描述】:

我一直在运行此代码并不断收到错误消息,不知道为什么。双浮动? 不断收到消息“错误:不兼容的类型:从 double 到 float 的可能有损转换。”转换是否有任何问题如何转换所以没有错误 这是较大代码的一部分。

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

【问题讨论】:

  • 我会将方法的类型设为双倍。

标签: java double equation area


【解决方案1】:

你需要投射。或者将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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多