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
7package main
8
9import "fmt"
10
11func f0() string {
12	const f = 3.141592;
13	return fmt.Sprintf("%v", float64(f));
14}
15
16
17func 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
25func 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}
34