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" );