Jua*_*ano 3 java static final private-members
我试图使用以下行来指定一个双常量,任何人都可以帮我解释为什么在运行时这个常量的值为0.0:
private static final double CONSTANT = 1/2;
Run Code Online (Sandbox Code Playgroud)
Ale*_*man 10
1和2被解释为整数并产生除法的整数结果.在末尾添加D以使它们被解释为双精度.
private static final double CONSTANT = 1D/2D;
Run Code Online (Sandbox Code Playgroud)
常量最后得到一个值,0.0因为整数除法的结果是一个截断的整数.所以你初始化的价值0不是0.5.要强制执行double结果,请将一个或两个操作数设为a double:
private static final double CONSTANT = 1/2.0; // or 1/2D, or even 1D/2D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |