当我尝试这样做时
double test = ((2 / 7) * 100);
它返回0.
有谁知道这是为什么以及如何解决它?
由于
答案 0 :(得分:11)
2/7是整数除法,并将返回0.尝试改为
2.0 / 7
(double) 2 / 7
答案 1 :(得分:4)
你要划分整数。
如果需要非整数结果,则至少一个操作数必须是float或double(或十进制)。
您可以通过向任何文字添加.00
来创建文字。
答案 2 :(得分:0)
您要分割整数,因此2 / 7
已成为0
。只需尝试2.0 / 7.0
即可获得正确的结果。
答案 3 :(得分:0)
它正在进行整数除法,因为所有操作数都是整数。
要解决此问题,请将至少一个操作数更改为双倍,如下所示:
double test = ((2.0 / 7.0) * 100.0);
答案 4 :(得分:0)
您正在进行整数数学运算,并且只有在得到最终结果时才转换为double
。
2 / 7 = 0
,而
2.0 / 7.0 = 0.285714285714285
使用double
值进行数学运算:
double test = ((2.0 / 7.0) * 100.0);
答案 5 :(得分:0)
这是因为分裂。两个int数的除法返回截断任何小数点的int数。因此,操作2/7的结果将为0。
它应该是这样的:
double test =((2.0 / 7.0)* 100.0);