This question already has answers here:
why is not (123 == 0123) in java?
(3个答案)
5年前关闭。
我很困惑为什么会这样,而我似乎找不到答案。这是来自作业:
答案是:
我如何到达这里:
等于-
以供参考
以0开头的数字是八进制数。
以0x开头的数字是十六进制数。
数字以0b开头,或者OB是二进制数。(从Java版本7-Binary Literals开始)
(3个答案)
5年前关闭。
我很困惑为什么会这样,而我似乎找不到答案。这是来自作业:
x=1, y=2, z=3;
z=(int)(x/y*3.0+z*012);
System.out.printf("%d %d %d", x, y, z);
答案是:
1 2 30; << from eclipse
我如何到达这里:
(1/2) = 0 * 3.0 = 0 + (z*012)= 30
。我想说36,但根据IDE,我猜是30。 最佳答案
012
是八进制数而不是十进制,十进制值为10。
z=(int)(x/y*3.0+z*012);
等于-
z=(int)(1/2*3.0+3*10);
以供参考
以0开头的数字是八进制数。
以0x开头的数字是十六进制数。
数字以0b开头,或者OB是二进制数。(从Java版本7-Binary Literals开始)
关于java - 3 * 012 = 30,而不是36。为什么? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21719946/
10-10 17:16