Crate decimal_rs[−][src]
High precision decimal with maximum precision of 38.
Optional features
serde
When this optional dependency is enabled, Decimal
implements the serde::Serialize
and
serde::Deserialize
traits.
Usage
To build a decimal, use Decimal
:
use decimal_rs::Decimal; let n1: Decimal = "123".parse().unwrap(); let n2: Decimal = "456".parse().unwrap(); let result = n1 + n2; assert_eq!(result.to_string(), "579");
To build a decimal from Rust primitive types:
use decimal_rs::Decimal; let n1 = Decimal::from(123_i32); let n2 = Decimal::from(456_i32); let result = n1 + n2; assert_eq!(result, Decimal::from(579_i32));
Decimal supports high precision arithmetic operations.
use decimal_rs::Decimal; let n1: Decimal = "123456789.987654321".parse().unwrap(); let n2: Decimal = "987654321.123456789".parse().unwrap(); let result = n1 * n2; assert_eq!(result.to_string(), "121932632103337905.662094193112635269");
Decimal can be encoded to bytes and decoded from bytes.
use decimal_rs::Decimal; let n1 = "123456789.987654321".parse::<Decimal>().unwrap(); let mut bytes = Vec::new(); n1.encode(&mut bytes).unwrap(); let n2 = Decimal::decode(&bytes); assert_eq!(n1, n2);
Structs
Decimal | High precision decimal. |
Enums
DecimalConvertError | An error which can be returned when a conversion between other type and decimal fails. |
DecimalParseError | An error which can be returned when parsing a decimal. |
Constants
MAX_BINARY_SIZE | Maximum binary data size of |
MAX_PRECISION | Maximum precision of |