Commit a43673cf authored by Jan Ziak's avatar Jan Ziak Committed by Ian Lance Taylor

cmd/gc: round floats with a large negative exponent towards zero

Fixes #6902

LGTM=iant
R=iant, rsc
CC=golang-codereviews
https://golang.org/cl/78730049
parent de1ea5de
......@@ -427,7 +427,8 @@ mpatoflt(Mpflt *a, char *as)
mppow10flt(&b, ex-dp);
mpmulfltflt(a, &b);
} else {
if((short)(dp-ex) != dp-ex) {
// 4 approximates least_upper_bound(log2(10)).
if(dp-ex >= (1<<(8*sizeof(dp)-3)) || (short)(4*(dp-ex)) != 4*(dp-ex)) {
mpmovecflt(a, 0.0);
}
else {
......
// run
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Issue 6902: confusing printing of large floating point constants
package main
import (
"os"
)
var x = -1e-10000
func main() {
if x != 0 {
os.Exit(1)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment