fix: increase default precision to 18 decimals to match precision of assets like ETH

Signed-off-by: Elias Van Ootegem <elias@vega.xyz>
This commit is contained in:
Elias Van Ootegem 2024-07-23 15:58:20 +01:00
parent d407fd253f
commit 6eb5468c62
No known key found for this signature in database
GPG key ID: 2E5B02EF5C1839AD
2 changed files with 31 additions and 31 deletions

View file

@ -33,15 +33,15 @@ import (
// Example: // Example:
// //
// d1 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(3)) // d1 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(3))
// d1.String() // output: "0.6666666666666667" // d1.String() // output: "0.666666666666666667"
// d2 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(30000)) // d2 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(30000))
// d2.String() // output: "0.0000666666666667" // d2.String() // output: "0.000066666666666667"
// d3 := decimal.NewFromFloat(20000).Div(decimal.NewFromFloat(3)) // d3 := decimal.NewFromFloat(20000).Div(decimal.NewFromFloat(3))
// d3.String() // output: "6666.6666666666666667" // d3.String() // output: "6666.666666666666666667"
// decimal.DivisionPrecision = 3 // decimal.DivisionPrecision = 3
// d4 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(3)) // d4 := decimal.NewFromFloat(2).Div(decimal.NewFromFloat(3))
// d4.String() // output: "0.667" // d4.String() // output: "0.667"
var DivisionPrecision = 16 var DivisionPrecision = 18
// PowPrecisionNegativeExponent specifies the maximum precision of the result (digits after decimal point) // PowPrecisionNegativeExponent specifies the maximum precision of the result (digits after decimal point)
// when calculating decimal power. Only used for cases where the exponent is a negative number. // when calculating decimal power. Only used for cases where the exponent is a negative number.

View file

@ -1841,13 +1841,13 @@ func TestDecimal_Div(t *testing.T) {
{"2.2", "1.1"}: "2", {"2.2", "1.1"}: "2",
{"-2.2", "-1.1"}: "2", {"-2.2", "-1.1"}: "2",
{"12.88", "5.6"}: "2.3", {"12.88", "5.6"}: "2.3",
{"1023427554493", "43432632"}: "23563.5628642767953828", // rounded {"1023427554493", "43432632"}: "23563.56286427679538279", // rounded
{"1", "434324545566634"}: "0.0000000000000023", {"1", "434324545566634"}: "0.000000000000002302",
{"1", "3"}: "0.3333333333333333", {"1", "3"}: "0.333333333333333333",
{"2", "3"}: "0.6666666666666667", // rounded {"2", "3"}: "0.666666666666666667", // rounded
{"10000", "3"}: "3333.3333333333333333", {"10000", "3"}: "3333.333333333333333333",
{"10234274355545544493", "-3"}: "-3411424785181848164.3333333333333333", {"10234274355545544493", "-3"}: "-3411424785181848164.333333333333333333",
{"-4612301402398.4753343454", "23.5"}: "-196268144782.9138440146978723", {"-4612301402398.4753343454", "23.5"}: "-196268144782.91384401469787234",
} }
for inp, expectedStr := range inputs { for inp, expectedStr := range inputs {
@ -1880,10 +1880,10 @@ func TestDecimal_Div(t *testing.T) {
// test code path where exp > 0 // test code path where exp > 0
inputs2 := map[Inp2]string{ inputs2 := map[Inp2]string{
{124, 10, 3, 1}: "41333333333.3333333333333333", {124, 10, 3, 1}: "41333333333.333333333333333333",
{124, 10, 3, 0}: "413333333333.3333333333333333", {124, 10, 3, 0}: "413333333333.333333333333333333",
{124, 10, 6, 1}: "20666666666.6666666666666667", {124, 10, 6, 1}: "20666666666.666666666666666667",
{124, 10, 6, 0}: "206666666666.6666666666666667", {124, 10, 6, 0}: "206666666666.666666666666666667",
{10, 10, 10, 1}: "1000000000", {10, 10, 10, 1}: "1000000000",
} }
@ -3465,15 +3465,15 @@ func TestAtan(t *testing.T) {
"11000020.2407442310156021090304691671842603586882014729198302312846062338790031898128063403419218957424", "11000020.2407442310156021090304691671842603586882014729198302312846062338790031898128063403419218957424",
} }
sols := []string{ sols := []string{
"-1.24076438822058001027437062753106", "-1.240764388220579999547768369366663257",
"-0.78539816339744833061616997868383", "-0.78539816339744828061616997868383",
"-0.24497866312686415", "-0.24497866312686415525",
"0.0", "0.0",
"0.318747560420644443", "0.31874756042064443706",
"0.78539816339744833061616997868383", "0.78539816339744828061616997868383",
"1.37340076694501580123233995736766", "1.37340076694501580283233995736766",
"1.47112767430373453123233995736766", "1.47112767430373453363233995736766",
"1.57079623588597296123259450235374", "1.570796235885972930232590411452263405",
} }
for i, inp := range inps { for i, inp := range inps {
d, err := NewFromString(inp) d, err := NewFromString(inp)
@ -3585,15 +3585,15 @@ func TestTan(t *testing.T) {
"11000020.2407442310156021090304691671842603586882014729198302312846062338790031898128063403419218957424", "11000020.2407442310156021090304691671842603586882014729198302312846062338790031898128063403419218957424",
} }
sols := []string{ sols := []string{
"0.2261415650505790298980791606748881031998682652", "0.226141565050579040350913677374961771568775128386",
"-1.5574077246549025", "-1.557407724654902476",
"-0.255341921221036275", "-0.2553419212210362665",
"0.0", "0.0",
"0.342524867530038963", "0.34252486753003894782",
"1.5574077246549025", "1.557407724654902476",
"-3.3805150062465829", "-3.380515006246583017",
"0.6483608274590872485524085572681343280321117494", "0.64836082745908726868517993033985905508029854441",
"0.68351325561491170753499935023939368502774607234006019034769919811202010905597996164029250820702097041244539696", "0.6835132556149117039375485965437720350182539298544980382184903605930387213483425583662733693301829283609140225056",
} }
for i, inp := range inps { for i, inp := range inps {
d, err := NewFromString(inp) d, err := NewFromString(inp)