7 : m_uiNumerator(uiNumerator)
8 , m_uiDenominator(uiDenominator)
14 if (m_uiNumerator == 0 && m_uiDenominator == 0)
17 return ((m_uiNumerator / m_uiDenominator) * m_uiDenominator) == m_uiNumerator;
22 return m_uiNumerator == other.m_uiNumerator && m_uiDenominator == other.m_uiDenominator;
27 return m_uiNumerator != other.m_uiNumerator || m_uiDenominator != other.m_uiDenominator;
37 return m_uiDenominator;
42 if (m_uiNumerator == 0 && m_uiDenominator == 0)
45 return m_uiNumerator / m_uiDenominator;
50 if (m_uiNumerator == 0 && m_uiDenominator == 0)
53 return static_cast<double>(m_uiNumerator) /
static_cast<double>(m_uiDenominator);
58 return m_uiDenominator != 0 || (m_uiNumerator == 0 && m_uiDenominator == 0);
63 PL_ASSERT_DEV(
IsValid() &&
IsIntegral(),
"ReduceIntegralFraction can only be called on valid, integral rational numbers");
65 return plRational(m_uiNumerator / m_uiDenominator, 1);
A class which can be used to represent rational numbers by stating their numerator and denominator.
Definition Rational.h:13
bool IsIntegral() const
returns true if the division of the numerator by the denominator would result in a full integer
Definition Rational_inl.h:12
bool operator==(const plRational &other) const
Equality operator.
Definition Rational_inl.h:20
plUInt32 GetIntegralResult() const
Returns the result of the division as an integer.
Definition Rational_inl.h:40
plUInt32 GetDenominator() const
Returns the denominator.
Definition Rational_inl.h:35
plRational()
Default constructor, initializes to 0/1.
plUInt32 GetNumerator() const
Returns the numerator of the rational number.
Definition Rational_inl.h:30
bool operator!=(const plRational &other) const
Inequality operator.
Definition Rational_inl.h:25
bool IsValid() const
Returns true if the rational is valid (follows the rules stated in the class description)
Definition Rational_inl.h:56
double GetFloatingPointResult() const
Returns the result of the division as a floating point number (double).
Definition Rational_inl.h:48
plRational ReduceIntegralFraction() const
This helper returns a reduced fraction in case of an integral input.
Definition Rational_inl.h:61