Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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_Integer_Double_Precision - Fatal编程技术网

Java 如果只使用整数的乘法和除法,是否可能会丢失精度?用双打怎么样?

Java 如果只使用整数的乘法和除法,是否可能会丢失精度?用双打怎么样?,java,integer,double,precision,Java,Integer,Double,Precision,在java中,如果我们有一个下面这样的操作,只使用整数和乘除运算,是否有可能由于精度损失,result不等于int3 Int int1, int2, int3 = some values Double result = ((((int1 / int2) * int3)/ int3)* int2) 编辑: 如果我们有双int1,int2,int3=一些值怎么办 谢谢。您正在使用整数操作数执行除法,所以是的,这很可能会丢失信息。这与普通浮点运算丢失精度的方式相同,但仍然是信息丢失。每次结果不是一个

在java中,如果我们有一个下面这样的操作,只使用整数和乘除运算,是否有可能由于精度损失,
result
不等于
int3

Int int1, int2, int3 = some values
Double result = ((((int1 / int2) * int3)/ int3)* int2)
编辑: 如果我们有
双int1,int2,int3=一些值怎么办


谢谢。

您正在使用整数操作数执行除法,所以是的,这很可能会丢失信息。这与普通浮点运算丢失精度的方式相同,但仍然是信息丢失。每次结果不是一个精确整数时,它都会这样做

例如:

int int1 = 1;
int int2 = 2;
int int3 = 3;

double result = (((int1 / int2) * int3) / int3) * int2;
。。。给出零,因为
int1/int2
为零


除此之外,乘法端还有溢出的可能性。

您使用整数操作数执行除法,因此是的,这很可能会丢失信息。这与普通浮点运算丢失精度的方式相同,但仍然是信息丢失。每次结果不是一个精确整数时,它都会这样做

例如:

int int1 = 1;
int int2 = 2;
int int3 = 3;

double result = (((int1 / int2) * int3) / int3) * int2;
。。。给出零,因为
int1/int2
为零


除此之外,乘法方面还有溢出的可能性。

在java中,任何时候用一个整数除以另一个整数都有失去精度的风险。所以,你的问题的简短答案是肯定的。关于整数除法的更多信息,请参见本教程:

在java中,任何时候将一个整数除以另一个整数,都有失去精度的风险。所以,你的问题的简短答案是肯定的。本教程中有关整数除法的更多信息:

是的,事实上,它肯定不会像你在做整数算术那样,这会导致截断-因此,例如,
3/2
将是
1
。发现这很有用:与你在做
int
算术时不太相关。是的,事实上,当你在做整数算术时,它肯定不是,这会导致截断-因此,例如,
3/2
将是
1
。发现这很有用:与你在做
int
算术时不太相关。