首页 文章

IEEE 754如何定义相同?

提问于
浏览
1

How does IEEE-754 define equal for "regular" double floating point numbers? Is the java implementation of Double.equal in accordance with IEEE-754?

如果我省略像NaN这样的特殊值,-0等是IEEE-754双浮点数等于,当且仅当它们具有相同的64位代表它们时?

IEEE-754定义了如何将“10.12”的近似值在64位中表示为double . IEEE-754定义了如何计算“6.0 4.12”,通过表示64位的值以及如何导出代表结果的64位 . 我知道我收到的两个64位模式不一样 .

我不知道,如果IEEE-754为那些仍然将它们定义为相等的64位模式定义了一些特殊的等同关系?

我看到很多关于如何使用浮点数等于数学的文档 . 如果根据IEEE-754表示和计算,它们都声称10.12!= 6.0 4.12 . 如果我在带有Double对象的java中这样做,java也声称这两个值不相等 . 我想知道java Double的相同操作是否符合IEEE-754 .

1 回答

  • 1

    如果我省略了像NaN这样的特殊值,-0等是IEEE-754双浮点数相等,当且仅当它们具有相同的64位代表它们时?

    是 .

    我想知道java Double的相同操作是否符合IEEE-754 .

    不,有两个例外specifically listed in Double.equals documentation

    • NaN 对应的两个 Double 对象相等;

    对应于零和负零的

    • Double 对象不相等 .

    原始 double 上的平等符合IEEE-754 .

相关问题