#include <KmbNumber.h>
Definition at line 9 of file KmbNumber.h.
◆ KmbNumber() [1/4]
| IncrementalEngine::KmbNumber::KmbNumber |
( |
| ) |
|
◆ KmbNumber() [2/4]
| IncrementalEngine::KmbNumber::KmbNumber |
( |
const KmbNumber & |
kmbNumber | ) |
|
◆ KmbNumber() [3/4]
| IncrementalEngine::KmbNumber::KmbNumber |
( |
float |
firstDigits, |
|
|
float |
trailing, |
|
|
int |
exponent |
|
) |
| |
◆ KmbNumber() [4/4]
| IncrementalEngine::KmbNumber::KmbNumber |
( |
float |
number, |
|
|
int |
exponent = 0 |
|
) |
| |
◆ Add()
| void IncrementalEngine::KmbNumber::Add |
( |
KmbNumber |
adder | ) |
|
◆ Divide()
| void IncrementalEngine::KmbNumber::Divide |
( |
KmbNumber |
divider | ) |
|
Definition at line 222 of file KmbNumber.cpp.
225 auto secondNumber = divider.FirstDigits + divider.TrailingPercentage;
227 if (secondNumber != 0)
229 auto resultFloat = firstNumber / secondNumber;
230 auto resultExponents =
Exponent - divider.Exponent;
232 Refactor(resultFloat, resultExponents);
◆ Equals()
| bool IncrementalEngine::KmbNumber::Equals |
( |
KmbNumber & |
other | ) |
|
Definition at line 236 of file KmbNumber.cpp.
239 bool isTralingEqual = trailingDiff > std::numeric_limits<float>::epsilon() && trailingDiff < 0.000000001f;
241 if (trailingDiff == 0)
243 isTralingEqual =
true;
◆ GetInt()
| float IncrementalEngine::KmbNumber::GetInt |
( |
| ) |
|
◆ GetRawNumber()
| float IncrementalEngine::KmbNumber::GetRawNumber |
( |
| ) |
|
◆ GetStringTrailingPercentage()
| float IncrementalEngine::KmbNumber::GetStringTrailingPercentage |
( |
| ) |
|
|
private |
Definition at line 70 of file KmbNumber.cpp.
73 trailingPercentage1000 = std::floor(trailingPercentage1000);
74 auto trailingPercentage = trailingPercentage1000 / 1000;
75 return trailingPercentage;
◆ Multiply()
| void IncrementalEngine::KmbNumber::Multiply |
( |
KmbNumber |
multiplier | ) |
|
Definition at line 212 of file KmbNumber.cpp.
215 auto secondNumber = multiplier.FirstDigits + multiplier.TrailingPercentage;
216 auto resultFloat = firstNumber * secondNumber;
217 auto resultExponents =
Exponent + multiplier.Exponent;
219 Refactor(resultFloat, resultExponents);
◆ operator=() [1/2]
| void IncrementalEngine::KmbNumber::operator= |
( |
float |
number1 | ) |
|
◆ operator=() [2/2]
| void IncrementalEngine::KmbNumber::operator= |
( |
KmbNumber & |
number1 | ) |
|
◆ Refactor() [1/2]
| void IncrementalEngine::KmbNumber::Refactor |
( |
| ) |
|
◆ Refactor() [2/2]
| void IncrementalEngine::KmbNumber::Refactor |
( |
float |
value, |
|
|
int |
exponent |
|
) |
| |
Definition at line 103 of file KmbNumber.cpp.
105 auto trail = std::fmod(value, 1);
◆ RoundUp()
| void IncrementalEngine::KmbNumber::RoundUp |
( |
KmbNumber & |
number | ) |
|
|
static |
Definition at line 35 of file KmbNumber.cpp.
37 if (number.TrailingPercentage > 0)
39 number.TrailingPercentage = (float)(std::round(number.TrailingPercentage * std::pow(10, 2))) / std::pow(10, 2);
40 number.FirstDigits += 1;
◆ SetSuffix()
| void IncrementalEngine::KmbNumber::SetSuffix |
( |
| ) |
|
|
private |
Definition at line 91 of file KmbNumber.cpp.
93 std::wstring suffixArray[] = SUFFIX;
94 for (
int i = 0; i <
sizeof(suffixArray) /
sizeof(suffixArray[0]); i++)
◆ Subtract()
| void IncrementalEngine::KmbNumber::Subtract |
( |
KmbNumber |
subtractor | ) |
|
Definition at line 187 of file KmbNumber.cpp.
189 if (
Exponent == subtractor.Exponent)
197 auto exponentDif =
Exponent - subtractor.Exponent;
200 auto value2 = subtractor.FirstDigits + subtractor.TrailingPercentage;
202 if (exponentDif > MAXFLOATEXPONENT)
208 value1 *= (float)(std::pow(10, exponentDif));
◆ ToString()
| std::wstring IncrementalEngine::KmbNumber::ToString |
( |
| ) |
|
Definition at line 44 of file KmbNumber.cpp.
55 std::wstringstream stream;
57 return stream.str() +
Suffix;
65 std::wstringstream stream;
67 return stream.str() +
Suffix;
◆ Exponent
| int IncrementalEngine::KmbNumber::Exponent = 0 |
◆ FirstDigits
| float IncrementalEngine::KmbNumber::FirstDigits = 0 |
◆ Suffix
| std::wstring IncrementalEngine::KmbNumber::Suffix = L" " |
◆ TrailingPercentage
| float IncrementalEngine::KmbNumber::TrailingPercentage = 0 |
◆ Zero