java私有静态最终双精度为0 2 月 Questions & Answers 1871 我正试图使用以下行指定一个双常量,有人能帮我解释一下为什么在运行时这个常量的值为0.0: private static final double CONSTANT = 1/2;
# 2 楼答案 该常量的值为0.0,因为整数除法的结果是一个被截断的整数。所以初始化的值是0,而不是0.5。要强制double结果,请将一个或两个操作数设为double: private static final double CONSTANT = 1/2.0; // or 1/2D, or even 1D/2D
# 1 楼答案
1和2被解释为整数,并产生除法的整数结果。在末尾加上D,使其解释为双精度
# 2 楼答案
该常量的值为
0.0
,因为整数除法的结果是一个被截断的整数。所以初始化的值是0
,而不是0.5
。要强制double
结果,请将一个或两个操作数设为double
: