Available on crate feature
write-floats
only.Expand description
Configuration options for writing floats.
This enables extensive control over how the float is written, from control characters like the decimal point, to the use of exponent notation, and the number of significant digits.
§Examples
For example, to customize the writing of numbers for new exponent
and decimal point characters, you would use Options
to create
a custom format and write the integer using the format.
use lexical_write_float::{FormattedSize, Options, ToLexicalWithOptions};
use lexical_write_float::format::STANDARD;
let value = 1.234e45f64;
const CUSTOM: Options = Options::builder()
// write exponents as "1.2^10" and not "1.2e10"
.exponent(b'^')
// use the European decimal point, so "1,2" and not "1.2"
.decimal_point(b',')
.build_strict();
const BUFFER_SIZE: usize = CUSTOM.buffer_size_const::<f64, STANDARD>();
let mut buffer = [0u8; BUFFER_SIZE];
let digits = value.to_lexical_with_options::<STANDARD>(&mut buffer, &CUSTOM);
assert_eq!(str::from_utf8(digits), Ok("1,234^45"));
§Pre-Defined Formats
These are the pre-defined formats for parsing numbers from various programming, markup, and data languages.
STANDARD
: Standard number format.DECIMAL_COMMA
: Numerical format with a decimal comma.HEX_FLOAT
: Numerical format for hexadecimal floats, which use ap
exponent.CARAT_EXPONENT
: Numerical format where^
is used as the exponent notation character.RUST_LITERAL
: Number format for aRust
literal floating-point number.PYTHON_LITERAL
: Number format for aPython
literal floating-point number.CXX_LITERAL
: Number format for aC++
literal floating-point number.C_LITERAL
: Number format for aC
literal floating-point number.RUBY_LITERAL
: Number format for aRuby
literal floating-point number.RUBY_STRING
: Number format to parse aRuby
float from string.SWIFT_LITERAL
: Number format for aSwift
literal floating-point number.GO_LITERAL
: Number format for aGolang
literal floating-point number.HASKELL_LITERAL
: Number format for aHaskell
literal floating-point number.HASKELL_STRING
: Number format to parse aHaskell
float from string.JAVASCRIPT_LITERAL
: Number format for aJavascript
literal floating-point number.JAVASCRIPT_STRING
: Number format to parse aJavascript
float from string.PERL_LITERAL
: Number format for aPerl
literal floating-point number.PHP_LITERAL
: Number format for aPHP
literal floating-point number.JAVA_LITERAL
: Number format for aJava
literal floating-point number.JAVA_STRING
: Number format to parse aJava
float from string.R_LITERAL
: Number format for anR
literal floating-point number.KOTLIN_LITERAL
: Number format for aKotlin
literal floating-point number.KOTLIN_STRING
: Number format to parse aKotlin
float from string.JULIA_LITERAL
: Number format for aJulia
literal floating-point number.CSHARP_LITERAL
: Number format for aC#
literal floating-point number.CSHARP_STRING
: Number format to parse aC#
float from string.KAWA_LITERAL
: Number format for aKawa
literal floating-point number.KAWA_STRING
: Number format to parse aKawa
float from string.GAMBITC_LITERAL
: Number format for aGambit-C
literal floating-point number.GAMBITC_STRING
: Number format to parse aGambit-C
float from string.GUILE_LITERAL
: Number format for aGuile
literal floating-point number.GUILE_STRING
: Number format to parse aGuile
float from string.CLOJURE_LITERAL
: Number format for aClojure
literal floating-point number.CLOJURE_STRING
: Number format to parse aClojure
float from string.ERLANG_LITERAL
: Number format for anErlang
literal floating-point number.ERLANG_STRING
: Number format to parse anErlang
float from string.ELM_LITERAL
: Number format for anElm
literal floating-point number.ELM_STRING
: Number format to parse anElm
float from string.SCALA_LITERAL
: Number format for aScala
literal floating-point number.SCALA_STRING
: Number format to parse aScala
float from string.ELIXIR_LITERAL
: Number format for anElixir
literal floating-point number.ELIXIR_STRING
: Number format to parse anElixir
float from string.FORTRAN_LITERAL
: Number format for aFORTRAN
literal floating-point number.D_LITERAL
: Number format for aD
literal floating-point number.COFFEESCRIPT_LITERAL
: Number format for aCoffeescript
literal floating-point number.COFFEESCRIPT_STRING
: Number format to parse aCoffeescript
float from string.COBOL_LITERAL
: Number format for aCOBOL
literal floating-point number.COBOL_STRING
: Number format to parse aCOBOL
float from string.FSHARP_LITERAL
: Number format for anF#
literal floating-point number.VB_LITERAL
: Number format for aVisual Basic
literal floating-point number.VB_STRING
: Number format to parse aVisual Basic
float from string.OCAML_LITERAL
: Number format for anOCaml
literal floating-point number.OBJECTIVEC_LITERAL
: Number format for anObjective-C
literal floating-point number.OBJECTIVEC_STRING
: Number format to parse anObjective-C
float from string.REASONML_LITERAL
: Number format for anReasonML
literal floating-point number.MATLAB_LITERAL
: Number format for aMATLAB
literal floating-point number.ZIG_LITERAL
: Number format for aZig
literal floating-point number.SAGE_LITERAL
: Number format for aSage
literal floating-point number.JSON
: Number format for aJSON
literal floating-point number.TOML
: Number format for aTOML
literal floating-point number.YAML
: Number format for aYAML
literal floating-point number.XML
: Number format for anXML
literal floating-point number.SQLITE
: Number format for aSQLite
literal floating-point number.POSTGRESQL
: Number format for aPostgreSQL
literal floating-point number.MYSQL
: Number format for aMySQL
literal floating-point number.MONGODB
: Number format for aMongoDB
literal floating-point number.
Structs§
- Options
- Options to customize writing floats.
- Options
Builder - Builder for
Options
.
Enums§
- Round
Mode - Enumeration for how to round floats with precision control.
Constants§
- CARAT_
EXPONENT - Numerical format where
^
is used as the exponent notation character. - CLOJURE_
LITERAL - Number format for a
Clojure
literal floating-point number. - CLOJURE_
STRING - Number format to parse a
Clojure
float from string. - COBOL_
LITERAL - Number format for a
COBOL
literal floating-point number. - COBOL_
STRING - Number format to parse a
COBOL
float from string. - COFFEESCRIPT_
LITERAL - Number format for a
Coffeescript
literal floating-point number. - COFFEESCRIPT_
STRING - Number format to parse a
Coffeescript
float from string. - CSHARP_
LITERAL - Number format for a
C#
literal floating-point number. - CSHARP_
STRING - Number format to parse a
C#
float from string. - CXX_
LITERAL - Number format for a
C++
literal floating-point number. - C_
LITERAL - Number format for a
C
literal floating-point number. - DECIMAL_
COMMA - Numerical format with a decimal comma.
- D_
LITERAL - Number format for a
D
literal floating-point number. - ELIXIR_
LITERAL - Number format for an
Elixir
literal floating-point number. - ELIXIR_
STRING - Number format to parse an
Elixir
float from string. - ELM_
LITERAL - Number format for an
Elm
literal floating-point number. - ELM_
STRING - Number format to parse an
Elm
float from string. - ERLANG_
LITERAL - Number format for an
Erlang
literal floating-point number. - ERLANG_
STRING - Number format to parse an
Erlang
float from string. - FORTRAN_
LITERAL - Number format for a
FORTRAN
literal floating-point number. - FSHARP_
LITERAL - Number format for an
F#
literal floating-point number. - GAMBITC_
LITERAL - Number format for a
Gambit-C
literal floating-point number. - GAMBITC_
STRING - Number format to parse a
Gambit-C
float from string. - GO_
LITERAL - Number format for a
Golang
literal floating-point number. - GUILE_
LITERAL - Number format for a
Guile
literal floating-point number. - GUILE_
STRING - Number format to parse a
Guile
float from string. - HASKELL_
LITERAL - Number format for a
Haskell
literal floating-point number. - HASKELL_
STRING - Number format to parse a
Haskell
float from string. - HEX_
FLOAT - Numerical format for hexadecimal floats, which use a
p
exponent. - JAVASCRIPT_
LITERAL - Number format for a
Javascript
literal floating-point number. - JAVASCRIPT_
STRING - Number format to parse a
Javascript
float from string. - JAVA_
LITERAL - Number format for a
Java
literal floating-point number. - JAVA_
STRING - Number format to parse a
Java
float from string. - JSON
- Number format for a
JSON
literal floating-point number. - JULIA_
LITERAL - Number format for a
Julia
literal floating-point number. - KAWA_
LITERAL - Number format for a
Kawa
literal floating-point number. - KAWA_
STRING - Number format to parse a
Kawa
float from string. - KOTLIN_
LITERAL - Number format for a
Kotlin
literal floating-point number. - KOTLIN_
STRING - Number format to parse a
Kotlin
float from string. - MATLAB_
LITERAL - Number format for a
MATLAB
literal floating-point number. - MAX_
SPECIAL_ STRING_ LENGTH - Maximum length for a special string.
- MONGODB
- Number format for a
MongoDB
literal floating-point number. - MYSQL
- Number format for a
MySQL
literal floating-point number. - OBJECTIVEC_
LITERAL - Number format for an
Objective-C
literal floating-point number. - OBJECTIVEC_
STRING - Number format to parse an
Objective-C
float from string. - OCAML_
LITERAL - Number format for an
OCaml
literal floating-point number. - PERL_
LITERAL - Number format for a
Perl
literal floating-point number. - PHP_
LITERAL - Number format for a
PHP
literal floating-point number. - POSTGRESQL
- Number format for a
PostgreSQL
literal floating-point number. - PYTHON_
LITERAL - Number format for a
Python
literal floating-point number. - REASONML_
LITERAL - Number format for an
ReasonML
literal floating-point number. - RUBY_
LITERAL - Number format for a
Ruby
literal floating-point number. - RUBY_
STRING - Number format to parse a
Ruby
float from string. - RUST_
LITERAL - Number format for a
Rust
literal floating-point number. - R_
LITERAL - Number format for an
R
literal floating-point number. - SAGE_
LITERAL - Number format for a
Sage
literal floating-point number. - SCALA_
LITERAL - Number format for a
Scala
literal floating-point number. - SCALA_
STRING - Number format to parse a
Scala
float from string. - SQLITE
- Number format for a
SQLite
literal floating-point number. - STANDARD
- Standard number format.
- SWIFT_
LITERAL - Number format for a
Swift
literal floating-point number. - TOML
- Number format for a
TOML
literal floating-point number. - VB_
LITERAL - Number format for a
Visual Basic
literal floating-point number. - VB_
STRING - Number format to parse a
Visual Basic
float from string. - XML
- Number format for an
XML
literal floating-point number. - YAML
- Number format for a
YAML
literal floating-point number. - ZIG_
LITERAL - Number format for a
Zig
literal floating-point number.