Den*_*ret 9 math floating-point go ieee-754
IEEE754支持负零.但是这段代码
a  := -0.0
fmt.Println(a, 1/a)
输出
0 +Inf
我原以为预期的地方
-0 -Inf
浮点格式基于IEEE754的其他语言允许您创建负零文字
Java:
float a = -0f;
System.out.printf("%f %f", a, 1/a); // outputs "-0,000000 -Infinity"
C# :
var a = -0d;
Console.WriteLine(1/a); // outputs "-Infinity"
Javascript:
?var a = -0;
console.log(a, 1/a);? // logs "0 -Infinity"
但我在Go中找不到相同的东西.
你怎么写go负零文字?
有一个注册问题.
它碰巧提供了一种解决方案:
a := math.Copysign(0, -1)
它并没有那么糟糕,因为它显然是指copysign由定义的标准函数IEEE754.
但这意味着您需要导入一个包,这对于(无可否认的次要和罕见)需求来说仍然太重了.
package main
import (
        "fmt"
        "math"
)
func main() {
        a := 1. / math.Inf(-1)
        fmt.Println(a, 1/a)
}
(还在这里)
输出:
-0 -Inf
| 归档时间: | 
 | 
| 查看次数: | 2677 次 | 
| 最近记录: |