From 3cef85695d1c946cff1dbc47ece214404b6f3be0 Mon Sep 17 00:00:00 2001 From: Josh Koon <45607479+joshkoon@users.noreply.github.com> Date: Tue, 19 Feb 2019 11:20:53 -0800 Subject: [PATCH] Convert Rational class to always use BASEX as radix. Convert to correct base when displaying only. --- src/CalcManager/CEngine/CalcInput.cpp | 4 ++-- src/CalcManager/CEngine/scicomm.cpp | 6 +++--- src/CalcManager/Header Files/CalcInput.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/CalcManager/CEngine/CalcInput.cpp b/src/CalcManager/CEngine/CalcInput.cpp index 707a36e4..3c65badc 100644 --- a/src/CalcManager/CEngine/CalcInput.cpp +++ b/src/CalcManager/CEngine/CalcInput.cpp @@ -302,9 +302,9 @@ wstring CalcInput::ToString(uint32_t radix, bool isIntegerMode) return result; } -Rational CalcInput::ToRational(uint32_t radix, int32_t precision) +Rational CalcInput::ToRational(int32_t precision) { - PRAT rat = StringToRat(m_base.IsNegative(), m_base.value, m_exponent.IsNegative(), m_exponent.value, radix, precision); + PRAT rat = StringToRat(m_base.IsNegative(), m_base.value, m_exponent.IsNegative(), m_exponent.value, BASEX, precision); if (rat == nullptr) { return 0; diff --git a/src/CalcManager/CEngine/scicomm.cpp b/src/CalcManager/CEngine/scicomm.cpp index 71ea956f..33ef0f87 100644 --- a/src/CalcManager/CEngine/scicomm.cpp +++ b/src/CalcManager/CEngine/scicomm.cpp @@ -139,7 +139,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam) (IDC_SIGN == wParam && 10 != m_radix)) { m_bRecord = false; - m_currentVal = m_input.ToRational(m_radix, m_precision); + m_currentVal = m_input.ToRational(m_precision); DisplayNum(); // Causes 3.000 to shrink to 3. on first op. } } @@ -651,7 +651,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam) case IDM_BYTE: if (m_bRecord) { - m_currentVal = m_input.ToRational(m_radix, m_precision); + m_currentVal = m_input.ToRational(m_precision); m_bRecord = false; } @@ -1018,7 +1018,7 @@ int CCalcEngine::GetCurrentRadix() wstring CCalcEngine::GetCurrentResultForRadix(uint32_t radix, int32_t precision) { - Rational rat = (m_bRecord ? m_input.ToRational(m_radix, m_precision) : m_currentVal); + Rational rat = (m_bRecord ? m_input.ToRational(m_precision) : m_currentVal); ChangeConstants(m_radix, precision); diff --git a/src/CalcManager/Header Files/CalcInput.h b/src/CalcManager/Header Files/CalcInput.h index 22b2b563..9980a386 100644 --- a/src/CalcManager/Header Files/CalcInput.h +++ b/src/CalcManager/Header Files/CalcInput.h @@ -54,7 +54,7 @@ namespace CalcEngine void Backspace(); void SetDecimalSymbol(wchar_t decSymbol); std::wstring ToString(uint32_t radix, bool isIntegerMode); - Rational ToRational(uint32_t radix, int32_t precision); + Rational ToRational(int32_t precision); private: bool m_hasExponent;