Complete floating point literals

Paul D. Anderson paul.d.removethis.anderson at comcast.andthis.net
Mon Jul 11 11:16:40 PDT 2011


bearophile Wrote:

> This comes from a small sub-thread in D.learn (but I have asked for it the first time in bug 3837 time ago):
> http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=28030
> 
> I suggest to turn floating point literals like the following into syntax errors (maybe just deprecated, so they get accepted using the -d compiler switch), because the saving of one digit is not worth the small troubles they cause now and then:
> 
> .5
> 3.
> 
> And require to write them like this:
> 
> 0.5
> 3.0
> 

As I slowly approach release of a D version of the General Decimal Arithmetic specification:

I agree that this syntax (1. or .1) should not be permitted, but it is called out in the GDA specification.

I don't have any problem with not including it. It only arises in converting from a string to a decimal number, i.e. Decimal(".1"), Decimal("1.").

Conversion from real numbers or integers is based on what the compiler accepts, so Decimal(1_000_000) is accepted even though it isn't allowed in the GDA specification. There's really no way to force the compiler not to allow it.

This is just a heads up. I'll modify the code to disallow 1. and .1 strings. If anyone has an objection let me know.

It's a relatively small change for me to make, much simpler than a change to the compiler.

Paul



More information about the Digitalmars-d mailing list