Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将整数除以双精度?_Java - Fatal编程技术网

Java 如何将整数除以双精度?

Java 如何将整数除以双精度?,java,Java,应为213333333…,但为320.0。为什么? int integ = 320; System.out.println((double) integ / (double) (3/2)); 我的意思是:我在使用double,为什么我要得到整数?3/2是整数除法,结果是1(将其转换为double会导致1.0)。因此,将320除以1.0 改为使用1.5(或3.0/2,如果必须的话)。您正在对除法后的double进行强制转换,这是用整数算法执行的。强制浮点运算的最简单方法是将其中一个操作数设为双精

应为
213333333…
,但为
320.0
。为什么?

int integ = 320;
System.out.println((double) integ / (double) (3/2));

我的意思是:我在使用double,为什么我要得到整数?

3/2
是整数除法,结果是
1
(将其转换为double会导致
1.0
)。因此,将320除以
1.0


改为使用
1.5
(或
3.0/2
,如果必须的话)。

您正在对除法后的
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);

您不应该将操作结果强制转换为双精度。而是强制所有操作数都是双精度的。(3/2)应该是(3.0/2.0)奇怪的,一个拥有11.7k声誉的人问这个问题。
3/2
1
<代码>(双精度)(3/2)是
(双精度)1
,即
1.0
。如果您想要
1.5
,请使用
1.5
,或
3.0/2
@Aimnox,而不是
3d
,因为我们使用的是双精度: