Module malachite_float::conversion::from_primitive_int

source ·
Expand description

Various functions and implementations of the From trait for converting a primitive integer to a Float.

§from

use malachite_float::Float;

assert_eq!(Float::from(0u32).to_string(), "0.0");
assert_eq!(Float::from(123u32).to_string(), "123.0");
assert_eq!(Float::from(123u32).get_prec(), Some(7));

assert_eq!(Float::from(0i32).to_string(), "0.0");
assert_eq!(Float::from(123i32).to_string(), "123.0");
assert_eq!(Float::from(123i32).get_prec(), Some(7));
assert_eq!(Float::from(-123i32).to_string(), "-123.0");

§from_unsigned_prec

use malachite_float::Float;
use std::cmp::Ordering::*;

let (x, o) = Float::from_unsigned_prec(0u32, 10);
assert_eq!(x.to_string(), "0.0");
assert_eq!(o, Equal);

let (x, o) = Float::from_unsigned_prec(123u32, 20);
assert_eq!(x.to_string(), "123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_unsigned_prec(123u32, 4);
assert_eq!(x.to_string(), "1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Less);

§from_signed_prec

use malachite_float::Float;
use std::cmp::Ordering::*;

let (x, o) = Float::from_signed_prec(0i32, 10);
assert_eq!(x.to_string(), "0.0");
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec(123i32, 20);
assert_eq!(x.to_string(), "123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec(123i32, 4);
assert_eq!(x.to_string(), "1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Less);

let (x, o) = Float::from_signed_prec(-123i32, 20);
assert_eq!(x.to_string(), "-123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec(-123i32, 4);
assert_eq!(x.to_string(), "-1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Greater);

§from_unsigned_prec_round

use malachite_base::rounding_modes::RoundingMode::*;
use malachite_float::Float;
use std::cmp::Ordering::*;

let (x, o) = Float::from_unsigned_prec_round(0u32, 10, Exact);
assert_eq!(x.to_string(), "0.0");
assert_eq!(o, Equal);

let (x, o) = Float::from_unsigned_prec_round(123u32, 20, Exact);
assert_eq!(x.to_string(), "123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_unsigned_prec_round(123u32, 4, Floor);
assert_eq!(x.to_string(), "1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Less);

let (x, o) = Float::from_unsigned_prec_round(123u32, 4, Ceiling);
assert_eq!(x.to_string(), "1.3e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Greater);

§from_signed_prec_round

use malachite_base::rounding_modes::RoundingMode::*;
use malachite_float::Float;
use std::cmp::Ordering::*;

let (x, o) = Float::from_signed_prec_round(0i32, 10, Exact);
assert_eq!(x.to_string(), "0.0");
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec_round(123i32, 20, Exact);
assert_eq!(x.to_string(), "123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec_round(123i32, 4, Floor);
assert_eq!(x.to_string(), "1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Less);

let (x, o) = Float::from_signed_prec_round(123i32, 4, Ceiling);
assert_eq!(x.to_string(), "1.3e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Greater);

let (x, o) = Float::from_signed_prec_round(-123i32, 20, Exact);
assert_eq!(x.to_string(), "-123.0");
assert_eq!(x.get_prec(), Some(20));
assert_eq!(o, Equal);

let (x, o) = Float::from_signed_prec_round(-123i32, 4, Floor);
assert_eq!(x.to_string(), "-1.3e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Less);

let (x, o) = Float::from_signed_prec_round(-123i32, 4, Ceiling);
assert_eq!(x.to_string(), "-1.2e2");
assert_eq!(x.get_prec(), Some(4));
assert_eq!(o, Greater);