1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef FPCONV_H
- #define FPCONV_H
-
- #define FPCONV_BUFLEN 32
- /* Fast and accurate double to string conversion based on Florian Loitsch's
- * Grisu-algorithm[1].
- *
- * Input:
- * fp -> the double to convert, dest -> destination buffer.
- * The generated string will never be longer than 24 characters.
- * Make sure to pass a pointer to at least 24 bytes of memory.
- * The emitted string will not be null terminated.
- *
- * Output:
- * The number of written characters.
- *
- * Exemplary usage:
- *
- * void print(double d)
- * {
- * char buf[24 + 1] // plus null terminator
- * int str_len = fpconv_dtoa(d, buf);
- *
- * buf[str_len] = '\0';
- * printf("%s", buf);
- * }
- *
- */
-
- int fpconv_dtoa(double fp, char dest[FPCONV_BUFLEN], unsigned precision,
- bool scientific);
-
- #endif
-
- /* [1] http://florian.loitsch.com/publications/dtoa-pldi2010.pdf */
|