• Robert Griesemer's avatar
    spec: clarify numeric conversions where IEEE-754 produces -0.0 · 55ecda4f
    Robert Griesemer authored
    The spec defines precise numeric constants which do not overflow.
    Consequently, +/-Inf and NaN values were excluded. The case was not
    clear for -0.0 but they are mostly of interest to determine the sign
    of infinities which don't exist.
    
    That said, the conversion rules explicitly say that T(x) (for a numeric
    x and floating-point type T) is the value after rounding per IEEE-754.
    The result is constant if x is constant. Rounding per IEEE-754 can
    produce a -0.0 which we cannot represent as a constant.
    
    Thus, the spec is inconsistent. Attempt to fix the inconsistency by
    adjusting the rounding rule rather than letting -0.0 into the language.
    
    For more details, see the issue below.
    
    Open to discussion.
    
    Fixes #12576.
    
    Change-Id: Ibe3c676372ab16d9229f1f9daaf316f761e074ee
    Reviewed-on: https://go-review.googlesource.com/14727Reviewed-by: 's avatarRob Pike <r@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    55ecda4f
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...