Negative zero literal in golang
floating-point, go, ieee-754, math
Solution
There is a registered issue.
And it happens to give a kind of solution :
a := math.Copysign(0, -1)
It's not so bad as it obviously refers to the standard `copysign` function defined by `IEEE754`.
But this means you need to import a package and this still looks much too heavy for the (admittedly minor and rare) need.
Problem
IEEE754 supports the negative zero. But this code ``` a := -0.0 fmt.Println(a, 1/a) ``` outputs ``` 0 +Inf ``` where I would have expected ``` -0 -Inf ``` Other languages whose float format is based on IEEE754 let you create negative zero literals 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" ``` But I couldn't find the equivalent in Go. How do you write a negative zero literal in go ?