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说的做。。。