This seems like what could be a common cause of bugs

bearophile bearophileHUGS at lycos.com
Fri Jul 8 16:35:09 PDT 2011


Andrej Mitrovic:

>     enum width = 100;
>     double step = 1 / width;
> ...
> This seems like a very easy mistake to make.

Right, it was present even in Python 2.x:
http://ideone.com/BEZqq
The bug you have found is common enough to deserve a so fundamental change in Python, they have improved it in Python3.x:
http://ideone.com/QeZEk

In Pascal/ObjectPascal you have both FP division (/) and integer division (div). In OCaML too, there is "/" and "/." to tell them apart. I believe such distinction reduces similar bugs a lot.

Even if Python2 was (and is) a very widespread language, and they have fixed the division, I don't think we'll see this change in D. Introducing an integer division operator in D is a possibility, but I think this is not enough to avoid your bug.

------------------------------

Steven Schveighoffer:

> 1. is a horrible legacy thing, and should be removed.

I agree, just as .1 :-) Saving one char of souece code is not worth the troubles this causes now and then.

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list