github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/test/fixedbugs/bug154.go (about)

     1  // run
     2  
     3  // Copyright 2009 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  package main
     8  
     9  import "fmt"
    10  
    11  func f0() string {
    12  	const f = 3.141592;
    13  	return fmt.Sprintf("%v", float64(f));
    14  }
    15  
    16  
    17  func f1() string {
    18  	const f = 3.141592;
    19  	x := float64(float32(f));  // appears to change the precision of f
    20  	_ = x;
    21  	return fmt.Sprintf("%v", float64(f));
    22  }
    23  
    24  
    25  func main() {
    26  	r0 := f0();
    27  	r1 := f1();
    28  	if r0 != r1 {
    29  		println("r0 =", r0);
    30  		println("r1 =", r1);
    31  		panic("r0 and r1 should be the same");
    32  	}
    33  }