// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: should not panic

// Copyright 2009 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.

package main

import "fmt"

func f0() string {
	const f = 3.141592;
	return fmt.Sprintf("%v", float64(f));
}


func f1() string {
	const f = 3.141592;
	_ := float64(float32(f));  // appears to change the precision of f
	return fmt.Sprintf("%v", float64(f));
}


func main() {
	r0 := f0();
	r1 := f1();
	if r0 != r1 {
		println("r0 =", r0);
		println("r1 =", r1);
		panic("r0 and r1 should be the same");
	}
}
