0

可能重复:
为什么 (360 / 24) / 60 = 0 … 在 Java 中

Java 中的浮点数和长整数问题

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

目前我正试图用对象及其属性做这样的事情,但即使是这种最简单的形式,我的程序也会返回 0.0。

我已经用 Longs 试过了,结果还是一样。这是漫长的一天,也许这很简单,但我在砖墙上。

4

4 回答 4

7

您的表达式3/180正在执行整数除法,然后将其转换为 float f。在整数除法中,3/180将返回0,这就是您所看到的。

您可能想要做的只是为您的数字添加一个小数点:f = 3.0/180.0;

于 2013-01-30T18:36:07.693 回答
3

3/180整数除法。
因此,结果被截断为整数。

您需要执行浮点除法:3/180f

于 2013-01-30T18:35:05.400 回答
3

你做一个整数除法。所以你得到一个 int ,它被转换回浮点数。尝试这个:

f = 3/180.0;

或者

f = 3/180f;
于 2013-01-30T18:35:11.227 回答
3

试试3.0/180。否则,您将两个整数相除并遇到整数截断。当您进行整数除法时,结果也是整数,而不是浮点数。

于 2013-01-30T18:35:52.003 回答