Java 中的浮点数和长整数问题
float f = 0.100f;
f = 3/180;
目前我正试图用对象及其属性做这样的事情,但即使是这种最简单的形式,我的程序也会返回 0.0。
我已经用 Longs 试过了,结果还是一样。这是漫长的一天,也许这很简单,但我在砖墙上。
Java 中的浮点数和长整数问题
float f = 0.100f;
f = 3/180;
目前我正试图用对象及其属性做这样的事情,但即使是这种最简单的形式,我的程序也会返回 0.0。
我已经用 Longs 试过了,结果还是一样。这是漫长的一天,也许这很简单,但我在砖墙上。
您的表达式3/180
正在执行整数除法,然后将其转换为 float f
。在整数除法中,3/180
将返回0
,这就是您所看到的。
您可能想要做的只是为您的数字添加一个小数点:f = 3.0/180.0;
3/180
是整数除法。
因此,结果被截断为整数。
您需要执行浮点除法:3/180f
你做一个整数除法。所以你得到一个 int ,它被转换回浮点数。尝试这个:
f = 3/180.0;
或者
f = 3/180f;
试试3.0/180
。否则,您将两个整数相除并遇到整数截断。当您进行整数除法时,结果也是整数,而不是浮点数。