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::{Infinity, NaN, NegativeInfinity, NegativeZero, Zero};
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_base::num::basic::traits::NaN;
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, Ordering::Equal);

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

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

from_primitive_float_prec_round

use malachite_base::num::basic::traits::NaN;
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, RoundingMode::Floor);
assert_eq!(x.to_string(), "NaN");
assert_eq!(o, Ordering::Equal);

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

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

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