Java中的浮点

时间:2013-01-30 18:34:03

标签: java floating-point

  

可能重复:
  Why does (360 / 24) / 60 = 0 … in Java

Java中存在浮点数和长整数问题

float f = 0.100f;
f = 3/180;

在我试图用对象及其属性做这样的事情的那一刻,但即使是这个最简单的形式我的程序返回0.0。

我用Longs尝试了这个,但结果仍然相同。这是漫长的一天,也许它很简单,但我在砖墙上。

4 个答案:

答案 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。否则,您将划分两个整数,并进入整数截断。进行整数除法时,结果也是整数,而不是浮点数。