Java 双参数在除法后等于0.0

Java 双参数在除法后等于0.0,java,Java,为什么结果等于0.0而不是0.9 int p = 6; System.out.println(_nums.size() + ", " + p); 64, 6 您可以像这样强制使用浮点数学 double result = (_nums.size() - p)/_nums.size(); 您可以像这样强制使用浮点数学 double result = (_nums.size() - p)/_nums.size(); 与 double result = (_nums.size() - p)/_n

为什么
结果
等于0.0而不是0.9

int p = 6;
System.out.println(_nums.size() + ", " + p);

64, 6

您可以像这样强制使用浮点数学

double result = (_nums.size() - p)/_nums.size();

您可以像这样强制使用浮点数学

double result = (_nums.size() - p)/_nums.size();

double result = (_nums.size() - p)/_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
要对整数进行“真”除法,只需在除法之前将其中一个整数转换为
double
。这将强制除法运算使用浮点运算,因为它有浮点(
双输入)


您当前正在做的是对整数进行除法,然后将除法的结果转换为双精度。所以现在的操作相当于这样:

double result = (double)  (int)(_nums.size() - p)/ (int) _nums.size();
which equals
      =(double) 6/64;
      =(double)  0   
      =0.0
要对整数进行“真”除法,只需在除法之前将其中一个整数转换为
double
。这将强制除法运算使用浮点运算,因为它有浮点(
双输入)


如何使用非整数除法?整个表达式
(\u nums.size()-p)/\u nums.size()
的类型是
int
。然后将其分配给一个
double
。必须尽早将操作数转换为
double
(\u nums.size()-(double)p)/\u nums.size()
。或
(\u nums.size()-p)*1.0/\u nums.size()
如何使用非整数除法?整个表达式
(\u nums.size()-p)/\u nums.size()
的类型为
int
。然后将其分配给一个
double
。必须尽早将操作数转换为
double
(\u nums.size()-(double)p)/\u nums.size()
。或
(\u nums.size()-p)*1.0/\u nums.size()要得到0.9,你必须按照Henry Keiter说的做…要得到0.9,你必须按照Henry Keiter说的做。。。