java - 对持有整数值的 double 变量的算术运算是否准确?

标签 java math precision

假设我有两个整数值存储在 double 变量中,e。例如:

double x = 100.0;
double y = 7.0;

我可以安全地假设对这两个 double 变量产生整数结果的任何算术运算都将返回一个精确的整数值(作为 double)吗?也就是说,例如所有:

x + y = 107.0
x - y = 93.0
x * y = 700.0

返回准确的整数值,还是会有一些精度问题?比如 x*y699.99995 左右?

一般问题:对两个包含整数值的 double 变量的任何算术运算都会产生整数结果,是否会返回精确的整数值(作为 double )?

我是在 Java 上下文中问这个问题,但我认为它在其他语言中也是类似的。

最佳答案

只要您的操作的整数结果可以精确地表示为 double ,您就会得到一个精确的结果,但是一旦整数结果超过尾数中可用的位数(即 52+1 = 53位),它将被四舍五入。

关于java - 对持有整数值的 double 变量的算术运算是否准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5272816/

相关文章:

javascript - 从 json 代码中删除 javascript 对象变量名称文本

c - 使用 IMU 传感器跟踪 2D 定位

c++ - 查找子数组的总和

java - 不使用 java.util.Date 的 Java 中的纳秒级时间

java - 通过VTD-XML将多个元素写入XML

java - 使用静态构造函数进行 Spring 依赖注入(inject)

JAVA 从条件返回 ArrayList 对象

algorithm - 为什么计算机科学中的对数被假定为以 2 为底的对数?

javascript - 为什么 "(2.5 < 2.5 + Number.EPSILON)"在 JavaScript 中是假的?

html - 为什么以像素指定的 div 宽度变得越来越小?