Convert Rational class to always use BASEX as radix. Convert to correct base when displaying only.

This commit is contained in:
Josh Koon 2019-02-19 11:20:53 -08:00
commit 3cef85695d
3 changed files with 6 additions and 6 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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;