Java 限制原始数学的最大可能算术错误。操作

Java 限制原始数学的最大可能算术错误。操作,java,precision,Java,Precision,是否有可能计算两个数字加7个小数位数的和或减的最大误差 例如: a=#.####### b=#.####### a+/-b = #.####### + / - epsilon a和b是随机数。如果a或b等于0或等于1'ε,我需要一个if情况的方程。我想如果我是math.ceil'a'和math.floor b我会得到最大的误差。但它不起作用 似乎每次都会出现1.######…E-6的错误。它能得到数学证明吗?谈论IEEE 754: 可能的错误(间隙)取决于浮点数据类型(即浮点或双精度),更重要

是否有可能计算两个数字加7个小数位数的和或减的最大误差

例如:

a=#.#######
b=#.#######
a+/-b = #.####### + / - epsilon
a和b是随机数。如果ab等于0或
等于1'ε,我需要一个if情况的方程。我想如果我是math.ceil'a'和math.floor b我会得到最大的误差。但它不起作用

似乎每次都会出现
1.######…E-6
的错误。它能得到数学证明吗?

谈论IEEE 754: 可能的错误(间隙)取决于浮点数据类型(即浮点或双精度),更重要的是还取决于数字离零的距离。(非均匀分辨率)

假设您想解决一些编程问题: 一般来说,处理此问题的方法不是使用简单的相等比较器,而是在比较中定义特定于域的epsilon:

// if(a == b)
if(Math.abs(a-b) < epsilon)
{
  ...
}
//如果(a==b)
if(数学绝对值(a-b)
hi。谢谢。问题解决了。。不漂亮,但它的工作。。。我刚刚将ε设置为0.000000…1。我从来没有观察过这么小的正确值。