floatToStrSci

string
floatToStrSci
(
T
)
(
in T val
,
int width = 0
,
int after_point = 6
,,
char fill_char = ' '
)
if (
isNumeric!T
)

Examples

assertEq( floatToStrSci( 0 ), "0.000000e+00" );
assertEq( floatToStrSci( 3.1415 ), "3.141500e+00" );
assertEq( floatToStrSci( 314.15 ), "3.141500e+02" );
assertEq( floatToStrSci( 0.0314 ), "3.139999e-02" );
assertEq( floatToStrSci( 3.14159e-8 ), "3.141590e-08" );
assertEq( floatToStrSci( 3.1415e11 ), "3.141500e+11" );
assertEq( floatToStrSci( 3.1415e11, 10, 3, PlusSig.PLUS ), "+3.141e+11" );

import std.string : format;

foreach( i; 0 .. 1000 )
{
    auto v = .001 * i;
    assertEqApprox( to!double( floatToStrSci(v) ), v, .001,
            format( "%%s != %%s with i: %s", i ) );
}

assertEq( floatToStrSci( 3.141592, 12, 5, PlusSig.SPACE ), " 3.14159e+00" );

Meta