Hello,

I realised that it is possible to create an interval of floats.

I think this is bad because, since intervals are computed by successively 
adding a number, it might result in precision errors.

(0.0 to: 1.0 by: 0.1) asArray >>> #(0.0 0.1 0.2 0.30000000000000004 0.4 0.5 
0.6000000000000001 0.7000000000000001 0.8 0.9 1.0)

The correct (precise) way to do it would be to use ScaledDecimal:

(0.0s1 to: 1.0s1 by: 0.1s1) asArray >>> #(0.0s1 0.1s1 0.2s1 0.3s1 0.4s1 0.5s1 
0.6s1 0.7s1 0.8s1 0.9s1 1.0s1)

I opened an issue about it: 
https://pharo.fogbugz.com/f/cases/22467/Float-should-not-implement-to-to-by-etc 
<https://pharo.fogbugz.com/f/cases/22467/Float-should-not-implement-to-to-by-etc>

And I’d like to discuss this with you.

What do you think?

Cheers,

Julien

---
Julien Delplanque
Doctorant à l’Université de Lille
http://juliendelplanque.be/phd.html
Equipe Rmod, Inria
Bâtiment B 40, Avenue Halley 59650 Villeneuve d'Ascq
Numéro de téléphone: +333 59 35 86 40

Reply via email to