aboutsummaryrefslogtreecommitdiff
path: root/src/math/big/decimal.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/big/decimal.go')
-rw-r--r--src/math/big/decimal.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/math/big/decimal.go b/src/math/big/decimal.go
index ae9ffb5db6..716f03bfa4 100644
--- a/src/math/big/decimal.go
+++ b/src/math/big/decimal.go
@@ -166,18 +166,21 @@ func (x *decimal) String() string {
switch {
case x.exp <= 0:
// 0.00ddd
+ buf = make([]byte, 0, 2+(-x.exp)+len(x.mant))
buf = append(buf, "0."...)
buf = appendZeros(buf, -x.exp)
buf = append(buf, x.mant...)
case /* 0 < */ x.exp < len(x.mant):
// dd.ddd
+ buf = make([]byte, 0, 1+len(x.mant))
buf = append(buf, x.mant[:x.exp]...)
buf = append(buf, '.')
buf = append(buf, x.mant[x.exp:]...)
default: // len(x.mant) <= x.exp
// ddd00
+ buf = make([]byte, 0, x.exp)
buf = append(buf, x.mant...)
buf = appendZeros(buf, x.exp-len(x.mant))
}