【发布时间】:2011-08-29 07:57:04
【问题描述】:
我想以不丢失符号信息的方式序列化浮点。具体来说,我想区分 IEEE-754 负零和常规零。
浮点除以零的结果没有超出 IEEE-754 标准;是否发生运行时恐慌是特定于实现的。
这表明我做不到
n == 0 && (float64(1) / n) < 0
我试过 math.Copysign 和 math.Signbit 说
func Signbit(x float64) bool如果 x 为负数或负零,
Signbit返回true。
但是
n == 0 && math.Signbit(n)
似乎不适合
n := -float64(0)
有什么想法吗?
编辑:
我提交了issue 2196 以跟踪我认为两者之间令人困惑的区别
nz := -float64(0)
和
pz := float64(0)
nz := -pz
按照 peterSO 的建议。
【问题讨论】: