在java中划分数字会给出零值

swa*_*wan 0 java

我有简单的代码测试请检查以下内容.为什么我的代码没有返回预期的结果.

public class test {

public static void main(final String a[]) {
    final double d1 = 1 / 1000; // should be 0.001
    final double d2 = 2 / 20; // should be  0.1
    System.out.println(d1 + "--" + d2); // 0.0--0.0
 }
}
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 10

你正在划分整数,从而产生整数0,它们被存储为0.0.

用这个 :

final double d1 = 1d / 1000; // divide a double by an integer -> get a double
Run Code Online (Sandbox Code Playgroud)