Skip to content

Numeric type conversion issue in if-else condition comparison #28154

@qiqizjl

Description

@qiqizjl

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.10.0-rc1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

  1. Create a workflow with an if-else node
  2. Add a condition: integer variable 0 compared with string "0.95" using operator <=
  3. The condition incorrectly evaluates to False instead of True
Image

✔️ Expected Behavior

When comparing numeric values, the system should correctly convert types:

  • 0 <= "0.95" should evaluate to True
  • 1 >= "0.95" should evaluate to True
  • 1.1 >= "0.95" should evaluate to True

❌ Actual Behavior

The comparison fails because when comparing an integer with a float string, the code converts the string to integer (losing precision). For example, "0.95" becomes 0, so 0 <= 0 evaluates incorrectly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐞 bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions