mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 14:13:30 -07:00
Convert Rational class to always use BASEX as radix. Convert to correct base when displaying only.
This commit is contained in:
parent
73372283a0
commit
3cef85695d
3 changed files with 6 additions and 6 deletions
|
@ -302,9 +302,9 @@ wstring CalcInput::ToString(uint32_t radix, bool isIntegerMode)
|
||||||
return result;
|
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)
|
if (rat == nullptr)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -139,7 +139,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam)
|
||||||
(IDC_SIGN == wParam && 10 != m_radix))
|
(IDC_SIGN == wParam && 10 != m_radix))
|
||||||
{
|
{
|
||||||
m_bRecord = false;
|
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.
|
DisplayNum(); // Causes 3.000 to shrink to 3. on first op.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -651,7 +651,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam)
|
||||||
case IDM_BYTE:
|
case IDM_BYTE:
|
||||||
if (m_bRecord)
|
if (m_bRecord)
|
||||||
{
|
{
|
||||||
m_currentVal = m_input.ToRational(m_radix, m_precision);
|
m_currentVal = m_input.ToRational(m_precision);
|
||||||
m_bRecord = false;
|
m_bRecord = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1018,7 +1018,7 @@ int CCalcEngine::GetCurrentRadix()
|
||||||
|
|
||||||
wstring CCalcEngine::GetCurrentResultForRadix(uint32_t radix, int32_t precision)
|
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);
|
ChangeConstants(m_radix, precision);
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace CalcEngine
|
||||||
void Backspace();
|
void Backspace();
|
||||||
void SetDecimalSymbol(wchar_t decSymbol);
|
void SetDecimalSymbol(wchar_t decSymbol);
|
||||||
std::wstring ToString(uint32_t radix, bool isIntegerMode);
|
std::wstring ToString(uint32_t radix, bool isIntegerMode);
|
||||||
Rational ToRational(uint32_t radix, int32_t precision);
|
Rational ToRational(int32_t precision);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool m_hasExponent;
|
bool m_hasExponent;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue