internal/encoding/text: change Value.Float{32,64} to Value.Float

Collapse Value.Float32 and Value.Float64 into single API to keep it
consistent with Value.{Int,Uint}.

Change-Id: I07737e72715fe3cc3f6bcad579cf5d6cfe3757d5
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/167317
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/encoding/text/text_test.go b/internal/encoding/text/text_test.go
index 7361e77..2ac4bf0 100644
--- a/internal/encoding/text/text_test.go
+++ b/internal/encoding/text/text_test.go
@@ -550,10 +550,6 @@
 		in:      `crazy:"x'"'\""\''"'z"`,
 		wantVal: V(Msg{{ID("crazy"), V(`x'""''z`)}}),
 	}, {
-		in:      `num: 1.02`,
-		wantVal: V(Msg{{ID("num"), V(float32(1.02))}}), // Use float32 to test marshaling of Float32 type.
-		wantOut: `num:1.02`,
-	}, {
 		in: `nums: [t,T,true,True,TRUE,f,F,false,False,FALSE]`,
 		wantVal: V(Msg{{ID("nums"), V(Lst{
 			V(true),
@@ -794,16 +790,9 @@
 				want, _ := x.Uint(true)
 				got, ok := y.Uint(math.MaxUint32 < want)
 				return got == want && ok
-			case Float32:
-				want, _ := x.Float32()
-				got, ok := y.Float32()
-				if math.IsNaN(float64(got)) || math.IsNaN(float64(want)) {
-					return math.IsNaN(float64(got)) == math.IsNaN(float64(want))
-				}
-				return got == want && ok
-			case Float64:
-				want, _ := x.Float64()
-				got, ok := y.Float64()
+			case Float32, Float64:
+				want, _ := x.Float(true)
+				got, ok := y.Float(math.MaxFloat32 < math.Abs(want))
 				if math.IsNaN(got) || math.IsNaN(want) {
 					return math.IsNaN(got) == math.IsNaN(want)
 				}