A division problem
bearophile
bearophileHUGS at lycos.com
Sun Mar 23 20:55:40 PDT 2014
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
More information about the Digitalmars-d
mailing list