Re: Format g bug ?

2017-08-09 Thread Steven Schveighoffer via Digitalmars-d-learn

On 8/9/17 4:10 PM, Temtaime wrote:

Sorry, messed up numbers

Expected:

3.11
3.11
3.1
3.1

Seems g outputs one digit less


I was bugged by this too.

It's not a bug. For the %f specifier, the number represents the number 
of digits *after* the decimal.


For the %g specifier, the number represents the number of digits *before 
and after* the decimal.


So:

writefln(`%.1g`, 31.11) -> 31

The most annoying thing is that %g is the default specifier for floating 
point.


-Steve


Re: Format g bug ?

2017-08-09 Thread Temtaime via Digitalmars-d-learn

Sorry, messed up numbers

Expected:

3.11
3.11
3.1
3.1

Seems g outputs one digit less


Format g bug ?

2017-08-09 Thread Temtaime via Digitalmars-d-learn

import std.stdio;

void main()
{
writefln(`%.2g`, 3.11);
writefln(`%.2f`, 3.11);

writefln(`%.1g`, 3.11);
writefln(`%.1f`, 3.11);
}


3.1
3.11
3
3.1

But expected

3.1
3.11
3.1
3.11