diff options
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/github.com/dexon-foundation/decimal/decimal.go | 7 | ||||
-rw-r--r-- | vendor/vendor.json | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/vendor/github.com/dexon-foundation/decimal/decimal.go b/vendor/github.com/dexon-foundation/decimal/decimal.go index 0f5079c42..ca277cf04 100644 --- a/vendor/github.com/dexon-foundation/decimal/decimal.go +++ b/vendor/github.com/dexon-foundation/decimal/decimal.go @@ -386,14 +386,15 @@ func (d Decimal) Rescale(exp int32) Decimal { // func (d Decimal) rescale(exp int32) Decimal { d.ensureInitialized() - // NOTE(vadim): must convert exps to float64 before - to prevent overflow - diff := math.Abs(float64(exp) - float64(d.exp)) + // NOTE: convert exps to int64 before - to prevent overflow + diff := int64(exp) - int64(d.exp) value := new(big.Int).Set(d.value) - expScale := new(big.Int).Exp(tenInt, big.NewInt(int64(diff)), nil) if exp > d.exp { + expScale := new(big.Int).Exp(tenInt, big.NewInt(diff), nil) value = value.Quo(value, expScale) } else if exp < d.exp { + expScale := new(big.Int).Exp(tenInt, big.NewInt(-diff), nil) value = value.Mul(value, expScale) } diff --git a/vendor/vendor.json b/vendor/vendor.json index afb9bac6c..ee8952501 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -139,10 +139,10 @@ "versionExact": "dev" }, { - "checksumSHA1": "7puYGOPhizIgr5nZ6GcRPNfr4Dc=", + "checksumSHA1": "YyJHUZ/uQM+qwymBCH1fhLTQtds=", "path": "github.com/dexon-foundation/decimal", - "revision": "05ad7315b3c581519964b7762074e00de3c4ceac", - "revisionTime": "2019-03-25T09:02:55Z" + "revision": "f9f60f8590bfa9da46f7c607089a3d36c54e2043", + "revisionTime": "2019-04-17T09:32:26Z" }, { "checksumSHA1": "In6vBHYUsX7DUIGiFN2hQggBgvI=", |