应为213,3333333...
,但为320.0
。为什么呢?
int integ = 320;
System.out.println((double) integ / (double) (3/2));
我的意思是:我正在使用double,为什么我会得到整数?
答案 0 :(得分:10)
3/2
是int division,导致1
(并在1.0
中将其转换成双重结果)。因此,您将320除以1.0
。
改为使用1.5
(如果必须,请使用3.0/2
。)
答案 1 :(得分:2)
在分割后你正在进行double
的转换,它是用整数运算执行的。强制浮点运算的最简单方法是将其中一个操作数设为double:
int integ = 320;
System.out.println((double) integ /(3.0/2));
或者输入值是变量:
int x = 3;
int y = 2;
System.out.println((double) integ /(1.0*x)/y);