0.1.5 |
|
---|---|
0.1.4 |
|
#14 in #rational
24KB
369 行
这个crate是关于有理数对象的简单直观实现。它提供了从整数和str输入的构造函数,但不支持浮点数。如果您已经在处理浮点数,现在假装非常精确也没有意义。
此外,+、-、/、*运算符及其赋值对应物(+=、-=、/=、*=)也被重载。
在严格意义上,它不是一个有理数crate,因为它允许创建分母为零的分数,这肯定会破坏一些东西。如果您对此感到不满,请联系OSHA。
分子和分母以i64存储,负数则重新分配给分子。(3/-2变成-3/2)。
示例
use bens_naive_rational_number::Rational;
// Calculating the price of an item
let orig_price = Rational::from_str("13.67").unwrap();
let tax = Rational::from_str("0.09").unwrap();
let discount = Rational::from_str("25/100").unwrap();
let one = Rational::from_integer(1).unwrap();
let final_price = orig_price * (one - discount) * (one + tax);
assert_eq!(final_price, Rational::from_str("447009/40000").unwrap());