int p = 6;
System.out.println(_nums.size() + ", " + p);
64, 6
为什么result
等于0.0而不是0.9?
double result = (_nums.size() - p)/_nums.size();
答案 0 :(得分:3)
您目前正在做的是分割整数,然后将该分区的结果转换为double。所以这个操作就像现在这样:
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).
要使用整数执行“true”除法,只需将其中一个转换为double
,然后再划分。这将强制除法运算使用浮点运算,因为它具有浮点(double
)输入。
double result = (_nums.size() - p) / ((double) _nums.size());
答案 1 :(得分:1)
你可以像这样强制使用浮点数学
double result = ((_nums.size() - p)/((double)_nums.size()));
答案 2 :(得分:1)
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