java - 我收到错误 : posible loss of of precision and i have tried to change it but I can fix it, 请帮助我

标签 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);
          ^
required: float
found:   double   

而且在变量 PFC 中,我尝试将变量 RC 的值的输入更改为 nextFloat 和 double 但它不起作用,还将变量的类型更改为 double 但是当我编译它时,它说该变量未在 System.out.print 中启动

最佳答案

3.1416 是一个double 文字。
将它乘以 float 仍会返回一个 double ,因此整个表达式的结果是一个 double

您不能将 double 分配给 float 变量(因为 double 可以容纳比 float ).

相反,您需要将变量更改为 double,以便它们可以保存更高精度的结果)。或者,您可以将文字更改为 float 文字(通过将 f 附加到数字),以便整个内容保持较低精度的 float.

关于java - 我收到错误 : posible loss of of precision and i have tried to change it but I can fix it, 请帮助我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351272/

相关文章:

java - 如何获取覆盖 hashCode() 的对象的唯一 ID?

java - 创建对象[同一实例的多个]

javascript - 访问函数作用域外的变量

python-3.x - Python,在屏幕输出的同一行打印字符串

PHP MYSQL - 包含 PHP 变量的 Echo mysql 值?

java - Sqlite 数据库未使用 java 更新

java - 可以修改最终对象,但不能更改引用变量

java - 如何获取 Selenium 元素的内部文本?

variables - BAT if exist %environment variable folder% (系统文件夹)

variables - Golang 未定义 : err