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