当我尝试这样做时
double test = ((2 / 7) * 100);
它返回 0。
有谁知道这是为什么以及如何解决它?
谢谢
2 / 7 是整数除法,将返回 0。试试这个
2.0 / 7
(double) 2 / 7
你正在划分整数。
如果您想要一个非整数结果,则至少一个操作数必须是浮点数或双精度数(或小数)。
您可以通过添加.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。
它应该是这样的:
双重测试 = ((2.0 / 7.0) * 100.0);