Java 实现声音间隔算法

Java 实现声音间隔算法,java,double,precision,intervals,rounding,Java,Double,Precision,Intervals,Rounding,如何在Java中实现声音间隔算法 我需要用java实现一个声音间隔算法。 让我们以类型double为例,我们使用一个iterval[0.09999…005,0.1000000…05]来描述值“0.1”的值范围信息,因为“0.1”不能由IEEE-754标准严格表示,即java中的双类型。 当考虑操作0.1*0.1时,在不同的舍入模式下,实际结果可能是0.01000…5,或0.00999…5。区间算术结果应为[leftHand,rightHand],左手应小于0.01000…5,右手应大于0.009

如何在Java中实现声音间隔算法

我需要用java实现一个声音间隔算法。 让我们以类型double为例,我们使用一个iterval[0.09999…0050.1000000…05]来描述值“0.1”的值范围信息,因为“0.1”不能由IEEE-754标准严格表示,即java中的双类型。 当考虑操作0.1*0.1时,在不同的舍入模式下,实际结果可能是0.01000…5,或0.00999…5。区间算术结果应为[leftHand,rightHand],左手应小于0.01000…5,右手应大于0.00999..5。 当我使用类型double来实现此算法时,我遇到两个问题:

  • 当计算间隔的左侧时,我想将舍入模式设置为向下,以便左侧值小于实际值。也就是说,我需要计算一个小于实际值的doule类型的数字和一个大于实际值的double类型的数字。我们称这个区间为算术音
  • 我需要一个函数来计算四个double数字的最大值。即, doubleMAX(d1、d2、d3、d4),返回d1、d2、d3和d4中的最大双倍数

  • 如果你已经达到了双重类型的有用极限,你可能需要改用。还有..你的问题是什么?如果你正在寻找如何利用IEEE754定义的所有优秀功能(舍入、陷阱等),停止寻找。Java(几乎和任何高级语言一样)不允许您访问它。