【问题标题】: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;