0

当我尝试这样做时

double test = ((2 / 7) * 100);

它返回 0。

有谁知道这是为什么以及如何解决它?

谢谢

4

6 回答 6

12

2 / 7 是整数除法,将返回 0。试试这个

2.0 / 7

(double) 2 / 7
于 2012-10-03T14:45:39.923 回答
4

你正在划分整数

如果您想要一个非整数结果,则至少一个操作数必须是浮点数或双精度数(或小数)。

您可以通过添加.00任何文字来创建文字来做到这一点。

于 2012-10-03T14:45:47.590 回答
0

你正在划分整数,所以2 / 7已经0. 试一试2.0 / 7.0,你会得到正确的结果。

于 2012-10-03T14:45:52.303 回答
0

它正在进行整数除法,因为所有操作数都是整数。

要修复它,请将至少一个操作数更改为双精度数,如下所示:

double test = ((2.0 / 7.0) * 100.0);
于 2012-10-03T14:46:14.853 回答
0

你正在做整数数学,只有double当你有最终结果时才转换。

2 / 7 = 0

尽管

2.0 / 7.0 = 0.285714285714285

用值做数学运算double

double test = ((2.0 / 7.0) * 100.0);
于 2012-10-03T14:46:49.843 回答
0

是因为分裂。两个 int 数相除返回截断任何小数点的 int 数。因此,运算 2/7 的结果将为 0。

它应该是这样的:

双重测试 = ((2.0 / 7.0) * 100.0);

于 2012-10-03T14:58:16.953 回答