1

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

我有这个问题:

float rate= (115/100);

当我做:

System.out.println(rate);

它给了我 1.0 什么...有问题吗?

4

7 回答 7

10

115 和 100 都是整数,所以会返回一个整数。

尝试这样做:

float rate = (115f / 100f);
于 2012-12-21T15:44:18.463 回答
3

您正在执行整数除法(提供整数结果),然后将其存储在浮点数中。

您需要在操作中至少使用一个浮点数才能使结果成为正确的类型:

float rate = 115f / 100;
于 2012-12-21T15:44:09.977 回答
2
float rate= (115/100);

做以下事情:

1151)对其进行整数除法100得到值 1。
2) 将步骤 1) 的结果转换为浮点数。这产生值 1.0

你想要的是这样的:

float rate = 115.0/100;

或更一般地说,您想将除法的一部分转换为浮点数,无论是通过强制转换 (float)115/100 还是通过将小数点附加到两部分之一,或者这样做float rate = 115f / 100完全取决于您并产生相同的结果。

于 2012-12-21T15:45:20.270 回答
2

为了使用整数执行浮点运算,您需要将至少一个操作数转换为 a float

例子:

int a = 115;
int b = 100;
float rate = ((float)a)/b;
于 2012-12-21T15:48:49.130 回答
1

float rate= (float)(115.0/100);改为使用

于 2012-12-21T15:43:52.810 回答
1

放就够了float rate = 115f / 100;

于 2012-12-21T16:09:20.560 回答
0
于 2012-12-21T15:49:24.543 回答