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;