[][src]Struct bigdecimal::BigDecimal

pub struct BigDecimal { /* fields omitted */ }

A big decimal type.

Implementations

impl BigDecimal[src]

pub fn new(digits: BigInt, scale: i64) -> BigDecimal[src]

Creates and initializes a BigDecimal.

pub fn parse_bytes(buf: &[u8], radix: u32) -> Option<BigDecimal>[src]

Creates and initializes a BigDecimal.

Decodes using str::from_utf8 and forwards to BigDecimal::from_str_radix. Only base-10 is supported.

Examples

use bigdecimal::{BigDecimal, Zero};

assert_eq!(BigDecimal::parse_bytes(b"0", 10).unwrap(), BigDecimal::zero());
assert_eq!(BigDecimal::parse_bytes(b"13", 10).unwrap(), BigDecimal::from(13));

pub fn with_scale(&self, new_scale: i64) -> BigDecimal[src]

Return a new BigDecimal object equivalent to self, with internal scaling set to the number specified. If the new_scale is lower than the current value (indicating a larger power of 10), digits will be dropped (as precision is lower)

pub fn with_prec(&self, prec: u64) -> BigDecimal[src]

Return a new BigDecimal object with precision set to new value

pub fn sign(&self) -> Sign[src]

Return the sign of the BigDecimal as num::bigint::Sign.

Examples

extern crate num_bigint;
extern crate bigdecimal;
use std::str::FromStr;

assert_eq!(bigdecimal::BigDecimal::from_str("-1").unwrap().sign(), num_bigint::Sign::Minus);
assert_eq!(bigdecimal::BigDecimal::from_str("0").unwrap().sign(), num_bigint::Sign::NoSign);
assert_eq!(bigdecimal::BigDecimal::from_str("1").unwrap().sign(), num_bigint::Sign::Plus);

pub fn as_bigint_and_exponent(&self) -> (BigInt, i64)[src]

Return the internal big integer value and an exponent. Note that a positive exponent indicates a negative power of 10.

Examples

extern crate num_bigint;
extern crate bigdecimal;
use std::str::FromStr;

assert_eq!(bigdecimal::BigDecimal::from_str("1.1").unwrap().as_bigint_and_exponent(),
           (num_bigint::BigInt::from_str("11").unwrap(), 1));

pub fn into_bigint_and_exponent(self) -> (BigInt, i64)[src]

Convert into the internal big integer value and an exponent. Note that a positive exponent indicates a negative power of 10.

Examples

extern crate num_bigint;
extern crate bigdecimal;
use std::str::FromStr;

assert_eq!(bigdecimal::BigDecimal::from_str("1.1").unwrap().into_bigint_and_exponent(),
           (num_bigint::BigInt::from_str("11").unwrap(), 1));

pub fn digits(&self) -> u64[src]

Number of digits in the non-scaled integer representation

pub fn abs(&self) -> BigDecimal[src]

Compute the absolute value of number

pub fn double(&self) -> BigDecimal[src]

pub fn half(&self) -> BigDecimal[src]

Divide this efficiently by 2

Note, if this is odd, the precision will increase by 1, regardless of the context's limit.

pub fn square(&self) -> BigDecimal[src]

pub fn cube(&self) -> BigDecimal[src]

pub fn sqrt(&self) -> Option<BigDecimal>[src]

Take the square root of the number

If the value is < 0, None is returned

pub fn cbrt(&self) -> BigDecimal[src]

Take the cube root of the number

pub fn inverse(&self) -> BigDecimal[src]

Compute the reciprical of the number: x-1

pub fn round(&self, round_digits: i64) -> BigDecimal[src]

Return number rounded to round_digits precision after the decimal point

pub fn is_integer(&self) -> bool[src]

Return true if this number has zero fractional part (is equal to an integer)

pub fn exp(&self) -> BigDecimal[src]

Evaluate the natural-exponential function ex

#[must_use]pub fn normalized(&self) -> BigDecimal[src]

Trait Implementations

impl<'a> Add<&'a BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a> Add<&'a BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a, 'b> Add<&'a BigInt> for &'b BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a, 'b> Add<&'b BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl Add<BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a> Add<BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl Add<BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a> Add<BigInt> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the + operator.

impl<'a> AddAssign<&'a BigDecimal> for BigDecimal[src]

impl<'a> AddAssign<&'a BigInt> for BigDecimal[src]

impl AddAssign<BigDecimal> for BigDecimal[src]

impl<'a> AddAssign<BigInt> for BigDecimal[src]

impl Clone for BigDecimal[src]

impl Debug for BigDecimal[src]

impl Default for BigDecimal[src]

impl Display for BigDecimal[src]

impl<'a> Div<&'a BigDecimal> for f32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for f64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for i8[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for i16[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for i32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for i64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for u8[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for u16[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for u32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<&'a BigDecimal> for u64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a, 'b> Div<&'b BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for f32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for f64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for i8[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for i16[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for i32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for i64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for u8[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for u16[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for u32[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Div<BigDecimal> for u64[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<f32> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<f64> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i16> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i16> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i32> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i32> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i64> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i64> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i8> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<i8> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<u16> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<u32> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<u64> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl<'a> Div<u8> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the / operator.

impl Eq for BigDecimal[src]

impl From<(BigInt, i64)> for BigDecimal[src]

impl From<BigInt> for BigDecimal[src]

impl From<i16> for BigDecimal[src]

impl From<i32> for BigDecimal[src]

impl From<i64> for BigDecimal[src]

impl From<i8> for BigDecimal[src]

impl From<u16> for BigDecimal[src]

impl From<u32> for BigDecimal[src]

impl From<u64> for BigDecimal[src]

impl From<u8> for BigDecimal[src]

impl FromPrimitive for BigDecimal[src]

impl FromStr for BigDecimal[src]

type Err = ParseBigDecimalError

The associated error which can be returned from parsing.

impl Hash for BigDecimal[src]

impl<'a> Mul<&'a BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a> Mul<&'a BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a, 'b> Mul<&'a BigInt> for &'b BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a, 'b> Mul<&'b BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl Mul<BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a> Mul<BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl Mul<BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a> Mul<BigInt> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the * operator.

impl<'a> MulAssign<&'a BigDecimal> for BigDecimal[src]

impl MulAssign<BigDecimal> for BigDecimal[src]

impl Neg for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a> Neg for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl Num for BigDecimal[src]

type FromStrRadixErr = ParseBigDecimalError

fn from_str_radix(
    s: &str,
    radix: u32
) -> Result<BigDecimal, ParseBigDecimalError>
[src]

Creates and initializes a BigDecimal.

impl One for BigDecimal[src]

impl Ord for BigDecimal[src]

fn cmp(&self, other: &BigDecimal) -> Ordering[src]

Complete ordering implementation for BigDecimal

Example

use std::str::FromStr;

let a = bigdecimal::BigDecimal::from_str("-1").unwrap();
let b = bigdecimal::BigDecimal::from_str("1").unwrap();
assert!(a < b);
assert!(b > a);
let c = bigdecimal::BigDecimal::from_str("1").unwrap();
assert!(b >= c);
assert!(c >= b);
let d = bigdecimal::BigDecimal::from_str("10.0").unwrap();
assert!(d > c);
let e = bigdecimal::BigDecimal::from_str(".5").unwrap();
assert!(e < c);

impl PartialEq<BigDecimal> for BigDecimal[src]

impl PartialOrd<BigDecimal> for BigDecimal[src]

impl<'a> Rem<&'a BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the % operator.

impl<'a, 'b> Rem<&'b BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the % operator.

impl Rem<BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the % operator.

impl<'a> Rem<BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the % operator.

impl Signed for BigDecimal[src]

impl StructuralEq for BigDecimal[src]

impl<'a> Sub<&'a BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a> Sub<&'a BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a, 'b> Sub<&'a BigInt> for &'b BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a, 'b> Sub<&'b BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl Sub<BigDecimal> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a> Sub<BigDecimal> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl Sub<BigInt> for BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a> Sub<BigInt> for &'a BigDecimal[src]

type Output = BigDecimal

The resulting type after applying the - operator.

impl<'a> SubAssign<&'a BigDecimal> for BigDecimal[src]

impl<'a> SubAssign<&'a BigInt> for BigDecimal[src]

impl SubAssign<BigDecimal> for BigDecimal[src]

impl<'a> SubAssign<BigInt> for BigDecimal[src]

impl<'a> Sum<&'a BigDecimal> for BigDecimal[src]

impl Sum<BigDecimal> for BigDecimal[src]

impl ToBigInt for BigDecimal[src]

impl ToPrimitive for BigDecimal[src]

impl TryFrom<f32> for BigDecimal[src]

type Error = ParseBigDecimalError

The type returned in the event of a conversion error.

impl TryFrom<f64> for BigDecimal[src]

type Error = ParseBigDecimalError

The type returned in the event of a conversion error.

impl Zero for BigDecimal[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
    T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>, 
[src]

impl<T> NumRef for T where
    T: Num + for<'r> NumOps<&'r T, T>, 
[src]

impl<T, Base> RefNum<Base> for T where
    T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.