#f32 #f64 #plus #capabilities #round #values #approx-eq

no-std float_plus

Additional features for float values

11 stable releases

2.0.0 Jan 16, 2025
1.5.5 Aug 27, 2024

#379 in Algorithms

Download history 50/week @ 2024-10-05 4/week @ 2024-10-12 6/week @ 2024-10-26 19/week @ 2024-11-02 9/week @ 2024-11-09 20/week @ 2024-11-16 9/week @ 2024-11-23 1/week @ 2024-11-30 9/week @ 2024-12-07 1/week @ 2024-12-14 1/week @ 2025-01-04 119/week @ 2025-01-11 36/week @ 2025-01-18

156 downloads per month

MIT/Apache

42KB
1K SLoC

FLoat Plus

This library contains traits that extend the capabilities of f32 and f64.

RoundToSigDig::round_to_sf(..)

    let before = 123.123_456_789_f64;
    let after = before.round_to_sf(9);
    assert_eq!(after, 123.123_457_f64);

ApproxEqSf::aeq_sf(..)

    let a = 100.123_456_789_f64;
    let b = 100.123_457;
    assert!(a.aeq_sf(b, 9));

    let a = 100.123_454_789_f64;
    let b = 100.123_457;
    assert!(!a.aeq_sf(b, 9));

NApproxEqSf::nae_sf(..)

    let a = 100.123_456_789_f64;
    let b = 100.123_457;
    assert!(!a.nae_sf(b, 9));

    let a = 100.123_454_789_f64;
    let b = 100.123_457;
    assert!(a.nae_sf(b, 9));

ApproxEq::aeq(..)

    use float_plus::approx_eq::ApproxEq;

    let a = 100.123_456_789_f64;
    let b = 100.123_456_712_f64;

    assert!(a.aeq(b, 7));
    assert!(!a.aeq(b, 8));

NApproxEq::nae(..)

    use float_plus::approx_eq::ApproxNe;
    
    let a = 100.123_456_789_f64;
    let b = 100.123_456_712_f64;

    assert!(!a.nae(b, 7));
    assert!(a.nae(b, 8));

RoundToFraction

    use float_plus::RoundToFraction;

    let before = 100.123_456_789_f64;
    let after = before.round_to_fraction(5);
    assert_eq!(after, 100.123_46);

Dependencies

~625KB
~12K SLoC