On Monday, 24 March 2014 at 03:55:41 UTC, bearophile wrote:
This kind of code sometimes is wrong, because you forget to
cast x to double before the division and you lose precision
(but here the compiler knows that the result of the division
will go inside a double):
void main() {
int x = 15;
double y = x / 10;
}
The cause is that unfortunately in D the integer division uses
the same operator as the FP division. In Python there is the /
and // operators. In OcaML there are the / and /., in Delphi
there are the / and div operators, in Ada the two operands need
to be of the same type.
Seasoned C/C++/D programmers watch for the types every time
they perform a division, to avoid that trap. But less
experienced programmers introduce bugs with divisions. Can D
help the programmer reduce the frequency of similar bugs? And
do we want to?
Bye,
bearophile
I think I've see a thread very similar to this... well, most
willn't like but a possible solution to help programmer reduce
this is do what python did: a new operator.