math/big: fix silly bug in Int64 accessor
Change-Id: If335d45ea1ab6c8aeeb47515f97680e2c1d651f3
Reviewed-on: https://go-review.googlesource.com/7522
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/src/math/big/float.go b/src/math/big/float.go
index 778cc20..feca692 100644
--- a/src/math/big/float.go
+++ b/src/math/big/float.go
@@ -835,7 +835,7 @@
if x.neg {
i = -i
}
- if x.MinPrec() <= 63 {
+ if x.MinPrec() <= uint(x.exp) {
return i, Exact
}
return i, acc // x truncated
diff --git a/src/math/big/float_test.go b/src/math/big/float_test.go
index dca78a8..cc38f68 100644
--- a/src/math/big/float_test.go
+++ b/src/math/big/float_test.go
@@ -808,12 +808,14 @@
{"-12345.000000000000000000001", -12345, Above},
{"-12345.0", -12345, Exact},
{"-1.000000000000000000001", -1, Above},
+ {"-1.5", -1, Above},
{"-1", -1, Exact},
{"-1e-1000", 0, Above},
{"0", 0, Exact},
{"1e-1000", 0, Below},
{"1", 1, Exact},
{"1.000000000000000000001", 1, Below},
+ {"1.5", 1, Below},
{"12345.0", 12345, Exact},
{"12345.000000000000000000001", 12345, Below},
{"9223372036854775807", 9223372036854775807, Exact},