int p = 6;
System.out.println(_nums.size() + ", " + p);
64, 6
为什么result
等于0.0而不是0.9?
double result = (_nums.size() - p)/_nums.size();
您当前正在做的是将整数分开,然后将该部门的结果施加到双重。因此,该操作等于现在类似的东西:
int intermediate = ((_nums.size() - p)/_nums.size()); // This can only be an int (e.g. 0).
double result = (double) intermediate; // Now this is just the double value of that int (0.0).
与整数进行"真"部门,只需将其中一个施放到double
之前。这将迫使除法点算术使用,因为它具有浮点(double
)输入。
double result = (_nums.size() - p) / ((double) _nums.size());
您可以强制使用浮点数数学,例如
double result = ((_nums.size() - p)/((double)_nums.size()));
double result = (_nums.size() - p)/_nums.size();
与
相同double result = (double) (int)(_nums.size() - p)/ (int) _nums.size();
which equals
=(double) 6/64;
=(double) 0
=0.0