[Development] Should QVariant be doing fuzzy comparisons on doubles?
Olivier Goffart
olivier at woboq.com
Tue Sep 20 11:29:32 CEST 2016
On Dienstag, 20. September 2016 03:08:42 CEST Kevin Kofler wrote:
> Thiago Macieira wrote:
> > Since this is a P3 and 5.8 hasn't been released, I will push the behaviour
> > change to 5.8 and drop the fuzzy comparison.
>
> Is such a behavior change really acceptable for 5.8? I think it can break
> applications that were relying on the current behavior in pretty bad, hard
> to debug ways (random bugs based on rounding errors).
I tend to agree with that.
This is a behavior change, and i see no reason to do it. Comparing double for
equality with operator== is a bad idea.
I know QVariant::operator== has problems, but i don't think this is something
that should be changed.
(Correct me if i'm wrong, but this might actually have quite some bad
performance impact on QML where lot of bindings are done on a real value and
they are compared for equality before emiting the changed signal. (or does QML
takes the value out of qvariant before comparing?))
On the other hand, the fact that qFuzzyCompare(inf, -inf) returns true looks
like a bug within qFuzzyCompare.
--
Olivier
Woboq - Qt services and support - https://woboq.com - https://code.woboq.org
More information about the Development
mailing list