Java 我得到了一个错误:可能会失去精度,我已经尝试过改变它,但我可以修复它,请帮助我

Java 我得到了一个错误:可能会失去精度,我已经尝试过改变它,但我可以修复它,请帮助我,java,variables,Java,Variables,我只是把变量和我得到错误的情况放在一起 Scanner DatoEntrada = new Scanner (System.in); float AFC, PFC, RC; case 3: System.out.println("Ingrese el radio"); RC=DatoEntrada.nextInt(); AFC=3.1416*(RC*RC); PFC=3.1416*(RC*2); break; 错误显示: AFC=3.1416*(RC*RC); ^

我只是把变量和我得到错误的情况放在一起

    Scanner DatoEntrada = new Scanner (System.in);
float AFC, PFC, RC;

case 3:
System.out.println("Ingrese el radio");
RC=DatoEntrada.nextInt();
AFC=3.1416*(RC*RC);
PFC=3.1416*(RC*2);
break;
错误显示:

AFC=3.1416*(RC*RC);
          ^
required: float
found:   double   

同样在变量PFC中,我尝试将变量RC的输入值更改为nextFloat和double,但它不起作用,也将变量类型更改为double,但当我编译它时,它表示te变量未在系统中启动。out.print

3.1416
是一个
double
文本。
将其乘以
浮点值
仍然会返回一个double,因此整个表达式的结果是
double

您不能将
double
分配给
float
变量(因为
double
可以容纳超过
float


相反,您需要将变量更改为
double
s,以便它们可以保存更高精度的结果)。或者,您可以将文本更改为
float
文本(通过在数字后面添加
f
),这样整个文本的精度仍然较低
float
3.1416
双精度
文本。
将其乘以
浮点值
仍然会返回一个double,因此整个表达式的结果是
double

您不能将
double
分配给
float
变量(因为
double
可以容纳超过
float


相反,您需要将变量更改为
double
s,以便它们可以保存更高精度的结果)。或者,您可以将文本更改为
float
literal(通过在数字后面添加
f
),这样整个过程保持较低的精度
float

,但如果将变量更改为double,则会出现错误,表明变量可能未初始化,所以我不能打印或显式地将乘法结果转换为浮点。@AlbertoReyesCamacho:这是一个完全无关的错误。您现在没有收到该错误的唯一原因是另一个错误妨碍了您。您不明白错误的哪一部分?但是如果将变量更改为double,则表明变量可能未初始化,因此我无法打印或显式将乘法结果转换为float。@AlbertoReyesCamacho:这是一个完全无关的错误。您现在没有收到该错误的唯一原因是另一个错误妨碍了您。你不明白错误的哪一部分?