java - 为什么 int = int * double 会报错而 int *= double 不会(在 Java 中)?

标签 java int double multiplication

<分区>

为什么 int = int * double 形式的赋值会出错,而 int *= double 形式的赋值不会出错(在 Java 中)?

例子:

public class TestEmp {

    public static void main(String[] args) {

        double e = 10;
        int r = 1; 
        r *= e;

        r = r * e;
        System.out.println("De uitkomst van r :" + r);

    }
}

r *= e 被接受而 r = r * e 不被接受。为什么?

最佳答案

r = r * e 给你一个错误,因为 r * e 的结果是 double 所以会有损失将其存储在 int 中时的精度。

r *= e 不会给您错误,因为它是 r = (int)(r * e) ( source ) 的语法糖。

关于java - 为什么 int = int * double 会报错而 int *= double 不会(在 Java 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976619/

相关文章:

java - SQLiteOpenHelper 无法调用 onCreate?

java - 图像 slider 错误 Android 应用程序

c - 除法结果始终为零

java - 如何在android中的可扩展 ListView 中获取复选框状态

java - 无法使用 eclipse 调试器进行调试

C: 将 int 转换为 size_t

c - 读取文件时如何更改数组值

c++ - 如何将整数 push_back 为字符串?

.net - 为什么将 "(Double.MinValue + 1) > Double.MinValue"评估为假?

swift - 在 swift 中将 double 值四舍五入到 x 小数位