Confusing about 1 and 1.0 in rules

Yes, I would agree. The problem arises when we use a Number type as “multistate switch” - say Fan Speed 0 1 2 3

Typical usage in a rule is then something like
if( state == 2) do whatever or switch-case equivalents
and that fails if state is 2.0
Usually it doesn’t happen, because we set 0 1 2 3 in rules or mappings or blah.

But at least some of the persistence services will store “3” but restore “3.0” due to internal processes.