Inheritance diagram for DGDouble:
Static Public Member Functions | |
static double | parse (char[] src, uint *ate=null) |
static int | format (double i, inout Style style) |
static char[] | format (char[] dst, double x, uint decimals=6, bool scientific=false, uint mode=3) |
Private Types | |
enum | NFormat { Binary = 'b', Octal = 'o', Hex = 'x', HexUpper = 'X', Decimal = 'd', Unsigned = 'u' } |
Static Private Member Functions | |
static char[] | format (char[] dst, long i, NFormat fmt=NFormat.Decimal, Flags flags=0) |
static package uint | trim (char[] digits, inout bool sign, uint *radix=null) |
Note that this class requires the attendent file dtoa.c be compiled and linked to the application.
While these functions are all static, they are encapsulated within a class inheritance to preserve some namespace cohesion. One might use structs for encapsualtion instead, but then inheritance would be lost. Note that the root class, Styled, is abstract to prevent accidental instantiation of these classes.
Definition at line 82 of file DGDouble.d.
|
|
|
Convert a formatted string of digits to a floating- point number. Definition at line 91 of file DGDouble.d. |
|
Convert float to string based upon Style bits. Definition at line 108 of file DGDouble.d. References format(). Referenced by format(). |
|
Convert a floating-point number to a string. Parameter 'mode' should be specified thusly: 0 ==> shortest string that yields d when read in and rounded to nearest. 1 ==> like 0, but with Steele & White stopping rule; e.g. with IEEE P754 arithmetic , mode 0 gives 1e23 whereas mode 1 gives 9.999999999999999e22. 2 ==> max(1,ndigits) significant digits. This gives a return value similar to that of ecvt, except that trailing zeros are suppressed. 3 ==> through ndigits past the decimal point. This gives a return value similar to that from fcvt, except that trailing zeros are suppressed, and ndigits can be negative. 4,5 ==> similar to 2 and 3, respectively, but (in round-nearest mode) with the tests of mode 0 to possibly return a shorter string that rounds to d. With IEEE arithmetic and compilation with -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same as modes 2 and 3 when FLT_ROUNDS != 1. 6-9 ==> Debugging modes similar to mode - 4: don't try fast floating-point estimate (if applicable). Definition at line 149 of file DGDouble.d. References assert(). |
|
Format numeric values into the provided output buffer. The traditional printf() conversion specifiers are adhered to, and the following types are supported: u - unsigned decimal d - signed decimal o - octal x - lowercase hexadecimal X - uppercase hexadecimal b - binary Modifiers supported include: # : prefix the conversion with a type identifier + : prefix positive decimals with a '+' space : prefix positive decimals with one space 0 : left-pad the number with zeros These modifiers are specifed via the 'flags' provided, and are represented via these identifiers: # : Flags.Hash + : Flags.Plus space : Flags.Space 0 : Flags.Zero Definition at line 90 of file Number.d. References Styled::error(). |
|
Strip leading whitespace, extract an optional numeric sign, and optionally strip and return a possible radix prefix. This can be used as a precursor to the conversion of digits into a number. Returns the number of matching characters. Definition at line 197 of file Number.d. Referenced by Long::parse(), Int::parse(), and Double::parse(). |