为什么我无法计算双值?

sam*_*333 0 java double double-precision

我想计算0.95的值.这是我的方法:

public static final int VAR = 5; 
private static double getDouble(){
        double dis = (double)(VAR/100);
        dis = (double)(1-dis);
        return dis;
}
Run Code Online (Sandbox Code Playgroud)

但是,它输出1.0 ?? 如果我在main方法中键入相同的代码,我得到0.95.我的错误在哪里?

Kon*_*kov 6

(5/100)将返回0,将被转换double0.0.

做就是了:

double dis = (5d/100);
Run Code Online (Sandbox Code Playgroud)

既然你已经声明了VAR = 5,你必须把它投射到double然后进行划分:

double dis = ((double) VAR) / 100;
Run Code Online (Sandbox Code Playgroud)