【发布时间】:2014-12-18 03:00:12
【问题描述】:
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 := 0.0; a *= -1.0吗? -
不,我只测试了
a := 0.0 * -1.0。您的代码有效,如果没有更好的解决方案,我将使用。但这并不是我所说的文字。 -
是的,不是文字。我不懂golang,所以就想用这种方式检查一下它是否支持普通操作的负零。
-
你是否提交了一个针对 go 的错误?
-
@StephenCanon 我会在填充之前询问 golang-nuts。但实际上这不是必需的:已经有一个已注册的问题(请参阅下面的我的“答案”)。
标签: math floating-point go ieee-754