github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/test/fixedbugs/bug321.go (about) 1 // run 2 3 // Copyright 2011 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Troublesome floating point constants. Issue 1463. 8 9 package main 10 11 import "fmt" 12 13 func check(test string, got, want float64) bool { 14 if got != want { 15 fmt.Println(test, "got", got, "want", want) 16 return false 17 } 18 return true 19 } 20 21 func main() { 22 good := true 23 // http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ 24 good = good && check("2.2250738585072012e-308", 2.2250738585072012e-308, 2.2250738585072014e-308) 25 // http://www.exploringbinary.com/php-hangs-on-numeric-value-2-2250738585072011e-308/ 26 good = good && check("2.2250738585072011e-308", 2.2250738585072011e-308, 2.225073858507201e-308) 27 if !good { 28 panic("fail") 29 } 30 }