On Monday, 18 November 2019 at 21:54:53 UTC, Steven Schveighoffer wrote:
You are expecting floating point to behave as if it is stored as a decimal number. It's not.

I was actually asking why 'c' and 'c2' functions behave differently. After mipri's answer I learned that the default floating point representation for literals in D is 'real', not 'double', as in C++.

Changing the type to real resolves the different behavior I was observing.

Just out of curiosity: in C++ a similar code also issues 3704 -- but the same value is returned by 'c' and 'c2', hence my doubt. Using, in C++, 'long double' and suffixing all floating point literals with 'l' gave me the same results as my "fixed" D code.

But, yes, thanks for clarifying about math.round.

Reply via email to