On Tuesday, 6 September 2016 at 07:04:24 UTC, Sai wrote:
Consider this:
import std.stdio;
void main()
{
byte a = 6, b = 7;
auto c = a + b;
auto d = a / b;
writefln("%s, %s", typeof(c).stringof, c);
writefln("%s, %s", typeof(d).stringof, d);
}
Output :
int, 13
int, 0
I really wish d gets promoted to a float. Besides C
compatibility, any reason why d got promoted only to int even
at the risk of serious bugs and loss of precision?
I know I could have typed "auto a = 6.0" instead, but still it
feels like an half-baked promotion rules.
Integer division and modulo are not bugs.
Andrea