Floating Point Literals: float (f) and real (L) suffix issue

kdevel kdevel at vogtner.de
Fri Jan 12 12:57:37 UTC 2018


On Friday, 12 January 2018 at 12:45:59 UTC, kdevel wrote:
> suffix.d
> ```
> void main ()
> {
>    real r = 1.L;
>    float f = 1.f;
> }
> ```
>
> $ dmd suffix.d
> suffix.d(3): Error: no property 'L' for type 'int'
> suffix.d(4): Error: no property 'f' for type 'int'
>
> According to the grammar in dmd2/html/d/spec/lex.html both are 
> valid FloatLiterals. Any comments?

Just found this on the same page

| If a floating literal has a . and a type suffix, at least one 
digit must be in-between:
|
| 1f; // OK
| 1.f; // forbidden
| 1.; // OK, double

Is there a rational for this restriction?


More information about the Digitalmars-d-learn mailing list