literals
Don
nospam at nospam.com
Sun Mar 28 12:34:43 PDT 2010
so wrote:
> What is interesting about it is, DMD already has the solution, and it is
> there, implemented!
>
> Just check the page :
> http://www.digitalmars.com/d/2.0/float.html
>
> Read the constant folding.
> If you already have this capabilities, why limit the user?
It's a bit surprising how D treats numeric literals. Although (say) 2.1
is of type double, 2.1f is of type float, and 2.1L is of type real, they
all have exactly the same value. (Not entirely true. Oddly, the maximum
exponent value does seem to be limited. I think that's something which
should change, as I don't think it makes much sense).
The type only affects the type of expressions involving that value, it
doesn't change the value.
Range propagation isn't fully implemented in DMD2 yet. Once it's in, the
situation will improve a little more. It's already much better than
the situation in C or C++. But I agree that it's still not perfect.
> C was a great language but lets get over with this backward-support
> paranoia. :)
>
> Thanks.
>
> On Sun, 28 Mar 2010 15:02:25 +0400, so <so at so.do> wrote:
>
>> Hello, after a little discussion on D.learn, i better ask this here
>> since i didn't get much replies.
>> Two lil questions.
>>
>> Why "3" is an int?
>> Why "0.3" is a double?
>>
>> Thanks!
>>
>
>
More information about the Digitalmars-d
mailing list