相关疑难解决方法(0)

不同的行为可能会导致精度下降

在Java中,当你这样做

int b = 0;
b = b + 1.0;
Run Code Online (Sandbox Code Playgroud)

您可能会丢失精度错误.但是,如果你这样做,为什么呢?

int b = 0;
b += 1.0;
Run Code Online (Sandbox Code Playgroud)

没有任何错误?

java implicit-cast compound-assignment

30
推荐指数
1
解决办法
2620
查看次数

不兼容的类型错误Java和int之间的Java.不确定原因

在下面的代码中,我有一个错误"可能发现精度损失:int required:short".我理解错误意味着什么,但我只是想知道为什么我会得到它.当然函数应该返回一个short类型(我看不出如何可能有任何精度损失,代码应该返回一个16位整数).任何人都可以为我清理为什么以下代码似乎需要类型int?

static short a() {
    short[] payload = {
            100, 200, 300,
            400, 500, 600,
            700, 800, 900, 1000
    };
    short offset = 2;
    return (payload[offset - 2] << 8 & 0xff00) + (payload[offset - 1] & 0xff);
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java precision bit-manipulation

8
推荐指数
1
解决办法
812
查看次数