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