Java中的浮点
可能重复:Java中的浮点,java,floating-point,Java,Floating Point,可能重复: 在Java中存在浮点和long问题 float f = 0.100f; f = 3/180; 目前,我正试图对对象及其属性执行类似的操作,但即使对于这种最简单的形式,我的程序也会返回0.0 我尝试了很长时间,结果仍然一样。这是漫长的一天,也许很简单,但我现在处境艰难。3/180是整数除法。 因此,结果被截断为整数 需要执行浮点除法:3/180f执行整数除法。所以你得到一个int,它被转换回一个float。试试这个: f = 3/180.0; 或 试试3.0/180。否则,将两个
在Java中存在浮点和long问题
float f = 0.100f;
f = 3/180;
目前,我正试图对对象及其属性执行类似的操作,但即使对于这种最简单的形式,我的程序也会返回0.0
我尝试了很长时间,结果仍然一样。这是漫长的一天,也许很简单,但我现在处境艰难。
3/180
是整数除法。因此,结果被截断为整数
需要执行浮点除法:
3/180f
执行整数除法。所以你得到一个int,它被转换回一个float。试试这个:
f = 3/180.0;
或
试试
3.0/180
。否则,将两个整数相除,并将运行整数截断。进行整数除法时,结果也是整数,而不是浮点数 表达式3/180
正在执行整数除法,然后将其转换为浮点f
。在整数除法中,3/180
将返回0
,这就是您看到的
你可能只想在数字上加一个小数点:
f=3.0/180.0
你应该使用f=3f/180
而不是你应该在这里了解更多关于java类型转换的信息(有点长,但信息非常丰富):这每周都会出现请纠正我,但我认为这是错误的。第二个参数是一个int,因此需要进行int除法。Java将自动将第二个参数转换为浮点值进行计算,因为第一个参数是浮点值。为了使计算能够工作,Java将为。您不必显式地使两个参数都浮动,只需其中一个。谢谢您的回答,我真的以为这会失败。谢谢大家,正如我所说的,这是一个非常漫长的一天,我的头因为撞在桌子上而非常疼痛。再次感谢所有的帮助
f = 3/180f;