Module malachite_float::conversion::from_primitive_float

source ·
Expand description

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

§from

use malachite_base::num::basic::traits::NegativeInfinity;
use malachite_float::Float;

assert_eq!(Float::from(f64::NAN).to_string(), "NaN");
assert_eq!(Float::from(f64::INFINITY).to_string(), "Infinity");
assert_eq!(Float::from(f64::NEGATIVE_INFINITY).to_string(), "-Infinity");
assert_eq!(Float::from(0.0).to_string(), "0.0");
assert_eq!(Float::from(-0.0).to_string(), "-0.0");
assert_eq!(Float::from(123.0).to_string(), "123.0");
assert_eq!(Float::from(-123.0).to_string(), "-123.0");

§from_primitive_float_prec

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

let (x, o) = Float::from_primitive_float_prec(f64::NAN, 4);
assert_eq!(x.to_string(), "NaN");
assert_eq!(o, Equal);

let (x, o) = Float::from_primitive_float_prec(1.0 / 3.0, 4);
assert_eq!(x.to_string(), "0.34");
assert_eq!(o, Greater);

let (x, o) = Float::from_primitive_float_prec(123.0, 4);
assert_eq!(x.to_string(), "1.2e2");
assert_eq!(o, Less);

§from_primitive_float_prec_round

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

let (x, o) = Float::from_primitive_float_prec_round(f64::NAN, 4, Floor);
assert_eq!(x.to_string(), "NaN");
assert_eq!(o, Equal);

let (x, o) = Float::from_primitive_float_prec_round(1.0 / 3.0, 4, Floor);
assert_eq!(x.to_string(), "0.31");
assert_eq!(o, Less);

let (x, o) = Float::from_primitive_float_prec_round(1.0 / 3.0, 4, Ceiling);
assert_eq!(x.to_string(), "0.34");
assert_eq!(o, Greater);

let (x, o) = Float::from_primitive_float_prec_round(1.0 / 3.0, 4, Nearest);
assert_eq!(x.to_string(), "0.34");
assert_eq!(o, Greater);