Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Rational
- {
- private int m_Denominator = 0;
- private int m_Divider = 1;
- public float Value { get => (float)m_Denominator / m_Divider; }
- public Rational() { }
- public Rational(int up) { m_Denominator = up; }
- public Rational(int up, int down)
- {
- if (down == 0)
- {
- MessageBox.Show("division by zero, value = default");
- return;
- }
- m_Denominator = up; m_Divider = Math.Abs(down);
- }
- static public Rational operator+ (Rational r1)
- {
- return new Rational(+r1.m_Denominator, +r1.m_Divider);
- }
- static public Rational operator- (Rational r1)
- {
- return new Rational(-r1.m_Denominator, -r1.m_Divider);
- }
- #region DefaultMath
- static public Rational operator+ (Rational r1, Rational r2)
- {
- return new Rational(r1.m_Denominator + r2.m_Denominator, r1.m_Divider + r2.m_Divider);
- }
- static public Rational operator- (Rational r1, Rational r2)
- {
- return new Rational(r1.m_Denominator - r2.m_Denominator, r1.m_Divider - r2.m_Divider);
- }
- static public Rational operator* (Rational r1, Rational r2)
- {
- return new Rational(r1.m_Denominator * r2.m_Denominator, r1.m_Divider * r2.m_Divider);
- }
- static public Rational operator/ (Rational r1, Rational r2)
- {
- return new Rational(r1.m_Denominator / r2.m_Divider, r1.m_Divider / r2.m_Denominator);
- }
- #endregion
- #region MathWithInt
- static public Rational operator +(Rational r1, int i2)
- {
- return r1 + new Rational(i2);
- }
- static public Rational operator -(Rational r1, int i2)
- {
- return r1 - new Rational(i2);
- }
- static public Rational operator *(Rational r1, int i2)
- {
- return r1 * new Rational(i2);
- }
- static public Rational operator /(Rational r1, int i2)
- {
- return r1 / new Rational(i2);
- }
- #endregion
- static public implicit operator float (Rational r1)
- {
- return r1.Value;
- }
- static public implicit operator string(Rational r1)
- {
- return $"Value = {r1.Value} Denominator = {r1.m_Denominator} Divider = {r1.m_Divider}";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement