mirror of https://github.com/miguelmota/cointop
Add subpackage for expression string eval
parent
1f0f6d39d6
commit
08e81cabb8
@ -0,0 +1,29 @@
|
||||
package eval
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/Knetic/govaluate"
|
||||
)
|
||||
|
||||
// EvaluateExpression ...
|
||||
func EvaluateExpressionToFloat64(expressionInput string) (float64, error) {
|
||||
expressionInput = strings.TrimSpace(expressionInput) // remove trailing \0s
|
||||
if expressionInput == "" {
|
||||
return 0, nil
|
||||
}
|
||||
expression, err := govaluate.NewEvaluableExpression(expressionInput)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
result, err := expression.Evaluate(nil)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
f64, ok := result.(float64)
|
||||
if !ok {
|
||||
return 0, errors.New("could not type assert float64")
|
||||
}
|
||||
return f64, nil
|
||||
}
|
Loading…
Reference in New Issue