math/big: added Float.Add example, remove warning from Floats

Change-Id: If04840c34b0ac5168ce1699eae880f04ae21c84c
Reviewed-on: https://go-review.googlesource.com/6680
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/src/math/big/float.go b/src/math/big/float.go
index e24961c..de16c6e 100644
--- a/src/math/big/float.go
+++ b/src/math/big/float.go
@@ -9,11 +9,6 @@
 // rounding mode of the result operand determines the rounding
 // mode of an operation. This is a from-scratch implementation.
 
-// CAUTION: WORK IN PROGRESS - USE AT YOUR OWN RISK.
-
-// TODO(gri) provide a couple of Example tests showing typical Float initialization
-// and use.
-
 package big
 
 import (
diff --git a/src/math/big/floatexample_test.go b/src/math/big/floatexample_test.go
index 7123651..460ef9c 100644
--- a/src/math/big/floatexample_test.go
+++ b/src/math/big/floatexample_test.go
@@ -9,6 +9,24 @@
 	"math/big"
 )
 
+// TODO(gri) add more examples
+
+func ExampleFloat_Add() {
+	// Operating on numbers of different precision is easy.
+	var x, y, z big.Float
+	x.SetInt64(1000)          // x is automatically set to 64bit precision
+	y.SetFloat64(2.718281828) // y is automatically set to 53bit precision
+	z.SetPrec(32)
+	z.Add(&x, &y)
+	fmt.Printf("x = %s (%s, prec = %d, acc = %s)\n", &x, x.Format('p', 0), x.Prec(), x.Acc())
+	fmt.Printf("y = %s (%s, prec = %d, acc = %s)\n", &y, y.Format('p', 0), y.Prec(), y.Acc())
+	fmt.Printf("z = %s (%s, prec = %d, acc = %s)\n", &z, z.Format('p', 0), z.Prec(), z.Acc())
+	// Output:
+	// x = 1000 (0x.fap10, prec = 64, acc = exact)
+	// y = 2.718281828 (0x.adf85458248cd8p2, prec = 53, acc = exact)
+	// z = 1002.718282 (0x.faadf854p10, prec = 32, acc = below)
+}
+
 func Example_Shift() {
 	// Implementing Float "shift" by modifying the (binary) exponents directly.
 	var x big.Float