这个问题在这里已经有答案了:
为什么我的输出在java[duplicate]中的指数是错误的(1个答案)
^运算符在java中做什么(18个答案)
5个月前关门了。
我一直在尝试用java浮点除法做一些简单的事情,读了几篇关于值的一些最小变化的文章,但与下面的内容完全不同。
这是预期的:
float f = 1789773f / 1000000f;
System.out.printf("\n%.2f", f);
Outputs: 1,79
这就是我处理变量时发生的情况:
int CLOCK=1789773;
System.out.printf("\n%.2f", (float)CLOCK/(10^6));
Outputs: 13410,48
怎么回事?我不得不用文字“1000000f”而不是10^6来让它工作。另外,我认为用(float)来转换除法元素之一会将所有内容设置为float,并且我不会结束整数运算。
3条答案
按热度按时间xpszyzbs1#
尝试使用
Math.pow(10,6)
,对我来说很好。ckx4rj1h2#
尝试改用此选项:
p3rjfoxz3#
10^6
不是一百万。12点,因为^
是按位异或运算符,而不是指数运算。使用
1e6f
,或者只是1000000f
.