1

我只是把变量和我得到错误的情况

    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 变量未在 System.out.print 中启动

4

1 回答 1

4

3.1416double字面意思。
将它乘以一个float仍然返回一个双精度,所以你的整个表达式的结果是一个double

您不能将 a 分配doublefloat变量(因为double可以容纳超过float)。

相反,您需要将变量更改为doubles,以便它们可以保存更高精度的结果)。或者,您可以将文字更改为float文字(通过附加f到数字),以便整个事物保持为 lower-precision float

于 2013-10-13T22:56:56.370 回答