在声明/init中使用双除法时Java的奇怪行为
我已经测试了这两个代码: (一) 结果:0.0 (二) 结果:0.5在声明/init中使用双除法时Java的奇怪行为,java,floating-point,initialization,declaration,division,Java,Floating Point,Initialization,Declaration,Division,我已经测试了这两个代码: (一) 结果:0.0 (二) 结果:0.5 为什么会发生这种情况?因为双b=1/2首先计算1/2,这是一个简单的整数除法,计算结果为0,然后将该值转换为double0.0,将其分配给b double b = 1 / 2; @Override public void paintComponent(Graphics g) { super.paintComponent(g); System.out.println(b); } double b = 0.5
为什么会发生这种情况?因为
双b=1/2
首先计算1/2
,这是一个简单的整数除法,计算结果为0,然后将该值转换为double0.0
,将其分配给b
double b = 1 / 2;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println(b);
}
double b = 0.5;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println(b);
}