Cast IntegerNode to float32 in operations like `f32 == 1.5`
Author: daisy1754Created Mar 20, 2024Updated Mar 25, 2026
Labelsbug
When you try to compare floating number with floating literal like Number == 12.34, it returns false even when Number is 12.34
Below is code to reproduce https://go.dev/play/p/FFgPkXjIURm
package main
import (
"fmt"
"github.com/expr-lang/expr"
)
type Env struct {
Number float32
}
func main() {
code := `Number == 12.34`
program, err := expr.Compile(code, expr.Env(Env{}))
if err != nil {
panic(err)
}
env := Env{
Number: 12.34,
}
output, err := expr.Run(program, env)
if err != nil {
panic(err)
}
fmt.Println(output)
}Source: expr-lang/expr