package dtoa
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=7501ae1806147660a71634494f9dd5eccfedbbd387c5f3a44173e4e289fdb08b
md5=40cb786876812a7e70ab5a7cf4094829
Description
A library for converting floats to strings (doubles to ascii, "d to a").
This is a (partial) port of Google's double-conversion library from C++ to C.
Published: 18 May 2017
README
ocaml-dtoa
This library provides a function that converts OCaml floats into strings, using the efficient Grisu3 algorithm.
The Grisu3 algorithm is described in "Printing Floating-Point Numbers Quickly And Accurately with Integers" by Florian Loitsch.
The implementation is adapted from double-conversion.
Current Status
Currently, this library exposes three functions:
ecma_string_of_float : float -> string
: formats the float according to the ECMAScript specification's implementation of Number.prototype.toString. Notably, the output of this function is valid JSON.shortest_string_of_float : float -> string
: formats the float as compactly as possible, for example returning123e6
instead of123000000
or1.23e+08
.g_fmt : float -> string
: formats the float in the same way as David M. Gay'sg_fmt
.
The underlying fast_dtoa()
function computes the significand and exponent, which are formatted by the above functions in dtoa_stubs.c
. It is a port of the double-conversion
library from C++ to C.
Many features of double-conversion
are still missing. Patches are welcome!
License
ocaml-dtoa
is BSD-licensed. We also provide an additional patent grant.
Author
ocaml-dtoa
was created by Facebook for the Flow project.
Dependencies (5)
-
topkg
build & >= "0.9.0"
-
ocb-stubblr
build
-
ocamlbuild
build
-
ocamlfind
build
-
ocaml
>= "4.01.0"
Dev Dependencies (1)
-
ounit
with-test & >= "2.0.0"
Used by (1)
-
flow_parser
>= "0.62.0" & < "0.159.0"
Conflicts
None