Skip to content

mroetsc/fractions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fractions

Crates.io Documentation License

A simple, lightweight Rust crate for fraction arithmetic with automatic reduction to lowest terms.

Features

  • Basic arithmetic operations (+, -, *, /)
  • Automatic reduction to lowest terms
  • Comparison operators
  • Conversion to/from integers
  • Proper error handling
  • Zero-cost abstractions with no dependencies

Usage

Add this to your Cargo.toml:

[dependencies]
fractions = "0.1"

Examples

use fractions::Fraction;

fn main() -> Result<(), fractions::FractionError> {
    // Create fractions
    let half = Fraction::new(1, 2)?;
    let third = Fraction::new(1, 3)?;

    // Basic arithmetic
    let sum = half + third;               // 5/6
    let difference = half - third;        // 1/6
    let product = half * third;           // 1/6
    let quotient = (half / third)?;       // 3/2

    // Comparisons
    assert!(half > third);
    assert_eq!(half, Fraction::new(2, 4)?);

    // Convert to f64
    let value = half.to_f64();           // 0.5

    // From integer
    let five = Fraction::from(5);        // 5/1

    Ok(())
}

Run the calculator example:

cargo run --example calculator

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Crate for fraction arithmetic

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages