java - 可能会损失 double

标签 java double-precision

int leccs1 = q1+q2+r1+swhw1;
System.out.println("LecCS = "+ leccs1+ "/60");
int lecprelim = lcp+lcpo;
System.out.println("LecPrelim = "+ lecprelim+ "/100");
double x = 0.50;
int lecgrade = ((x * leccs1) + (x * lecprelim));
System.out.println("LecGrade = "+ lecgrade);



C:\FINALS OBE\OBE1\ICS112_1ISB_LecFinals_OBE.java:61: error: possible loss of precision
    int lecgrade = ((x * leccs1) + (x * lecprelim));
                                 ^
  required: int
  found:    double
1 error

Process completed.

我正在尝试计算成绩。用户输入成绩作为输入。我希望 x 是 double 而不是 int。

最佳答案

改变

   int lecgrade = ((x * leccs1) + (x * lecprelim));

double lecgrade = ((x * leccs1) + (x * lecprelim));

int grade=lecgrade.intValue();

或者在单行中您可以编写

int lecgrade = ((x * leccs1) + (x * lecprelim)).intValue();

使用intValue()double转换为int

检查intValue()

关于java - 可能会损失 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22421815/

相关文章:

java - 需要一个字符串,但结果是 BEGIN_OBJECT 我必须返回字符串

java - Java 应用程序的 Docusign OAuth getAccessToken 失败

c++ - Gram-Schmidt 可能导致精度损失

javascript - 为什么 JavaScript 的数字*显示*对于大数字不准确?

java - JTextArea实时输出

java - 如何让我的应用程序作为后台进程运行

java - Libgdx 视锥体剔除 actor.draw() 内

C++从二进制文件写入和读取 double 矩阵

c# - 字典键存在时找不到

c - 了解 DBL_MAX