> Am 01.11.2017 um 17:51 schrieb Greg Titus via swift-dev <swift-dev@swift.org>:
> 
> The common (and correct!) wisdom in _any_ programming language that uses IEEE 
> floating point is that checking equality of two floating point values is 
> almost always a terrible idea. Usually what you want in any real world code 
> is to check for a difference less than some epsilon value, which depends upon 
> context. There are just too many issues with values that aren’t exactly 
> representable, rounding errors during computations, et cetera, for perfectly 
> normal floats even if you completely left aside equality rules for NaN.

Quite much what I was about to write about the topic:
I guess the most common difference between a programmer with a graduation and a 
autodidact is that one was told that „==" shouldn’t be used with floats, 
whereas the other had to learn the hard way.

So, I think it Swift could be really innovative by protecting people from the 
trouble of float-equallity — and although that definitely belongs more to 
evolution:
I see two possibilities here, and both would rely on generic value parameters.
One is creating a Float type with a parametrized epsilon (or maximal relative 
error), the other is using an parametrizing an integer type with a scaling 
factor.

Both options are already possible, but as the needed precision depends on the 
use case, it imho doesn’t make sense to create a type with a fixed parameter in 
the stdlib.

- Tino
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to