🐛 fix: fix floating point precision
This commit is contained in:
parent
2d0a635f5e
commit
d1369eb5c6
1
go.mod
1
go.mod
@ -40,6 +40,7 @@ require (
|
||||
github.com/robfig/cron/v3 v3.0.1 // indirect
|
||||
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/shopspring/decimal v1.4.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/spf13/afero v1.11.0 // indirect
|
||||
github.com/spf13/cast v1.6.0 // indirect
|
||||
|
2
go.sum
2
go.sum
@ -232,6 +232,8 @@ github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6ke
|
||||
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
||||
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
|
||||
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||
|
@ -3,6 +3,7 @@ package model
|
||||
import (
|
||||
"one-api/common"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@ -62,11 +63,17 @@ func (price *Price) GetOutput() float64 {
|
||||
}
|
||||
|
||||
func (price *Price) FetchInputCurrencyPrice(rate float64) float64 {
|
||||
return price.GetInput() * rate
|
||||
r := decimal.NewFromFloat(price.GetInput()).Mul(decimal.NewFromFloat(rate))
|
||||
v, _ := r.Float64()
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
func (price *Price) FetchOutputCurrencyPrice(rate float64) float64 {
|
||||
return price.GetOutput() * rate
|
||||
r := decimal.NewFromFloat(price.GetOutput()).Mul(decimal.NewFromFloat(rate))
|
||||
v, _ := r.Float64()
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
func UpdatePrices(tx *gorm.DB, models []string, prices *Price) error {
|
||||
|
Loading…
Reference in New Issue
Block a user