划分后双参数等于0.0

  • 本文关键字:参数 划分 java
  • 更新时间 :
  • 英文 :

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

最新更新