]> Cypherpunks repositories - gostls13.git/commitdiff
test: add test for floating point rounding of constants
authorIan Lance Taylor <iant@golang.org>
Mon, 26 Nov 2012 16:31:15 +0000 (08:31 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 26 Nov 2012 16:31:15 +0000 (08:31 -0800)
Failed with gccgo.

R=golang-dev, remyoudompheng, rsc
CC=golang-dev
https://golang.org/cl/6855053

test/fixedbugs/bug470.go [new file with mode: 0644]

diff --git a/test/fixedbugs/bug470.go b/test/fixedbugs/bug470.go
new file mode 100644 (file)
index 0000000..0a35918
--- /dev/null
@@ -0,0 +1,26 @@
+// run
+
+// Copyright 2012 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.
+
+// Converting constants between types must introduce rounding.
+
+package main
+
+import "fmt"
+
+const (
+    F32 = 0.00999999977648258209228515625
+    F64 = 0.01000000000000000020816681711721685132943093776702880859375
+)
+
+var F = float64(float32(0.01))
+
+func main() {
+       // 0.01 rounded to float32 then to float64 is F32.
+       // 0.01 represented directly in float64 is F64.
+       if F != F32 {
+               panic(fmt.Sprintf("F=%.1000g, want %.1000g", F, F32))
+       }
+}