gpt4 book ai didi

java - 如果没有余数,双除法等于整数除法吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:24:59 25 4
gpt4 key购买 nike

在 JVM 上,两个 double 值之间的除法是否总是产生与整数除法相同的结果?

具有以下先决条件:

  • 除法无余
  • 不被零除
  • xy 实际上都是整数值。

例如在下面的代码中

double x = ...;
int resultInt = ...;
double y = x * resultInt;
double resultDouble = y / x; // double division

resultDouble 是否总是等于 resultInt 还是会损失一些精度?

最佳答案

将 int 赋值给 double 或 float 可能会丢失精度有两个原因:

  • 有些数字不能表示为 double / float ,所以它们最终会被近似
  • 大整数可能在租赁有效数字中包含太多精度

所以这取决于 int 的大小,但在 Java 中,double 使用 52 位尾数,因此能够表示 32 位整数而不会丢失数据。

这两个站点中的示例非常棒:

1- Java's Floating-Point (Im)Precision

2- About Primitive Data Types In Java

同时检查:

Loss of precision - int -> float or double

关于java - 如果没有余数,双除法等于整数除法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com