update// reformated code in camount.cpp

This commit is contained in:
Strider
2020-04-08 14:51:27 +02:00
parent eb2adaa81c
commit f48f6453d5
2 changed files with 94 additions and 67 deletions

View File

@@ -1,204 +1,230 @@
#include "camount.h" #include "camount.h"
#include "settings.h" #include "settings.h"
#include "precompiled.h" #include "precompiled.h"
const int NUMPLACES = 8; const int NUMPLACES = 8;
const qint64 COIN = 100000000; const qint64 COIN = 100000000;
double CAmount::toDecimalDouble() const { double CAmount::toDecimalDouble() const
{
return static_cast<double>(this->amount) / COIN; return static_cast<double>(this->amount) / COIN;
} }
QString CAmount::toDecimalString() const { QString CAmount::toDecimalString() const
if (amount < 0) { {
if (amount < 0)
{
CAmount negative(-1 * this->amount); CAmount negative(-1 * this->amount);
return "-" + negative.toDecimalString(); return "-" + negative.toDecimalString();
} }
int wholePart = amount / COIN; int wholePart = amount / COIN;
int decimalPart = amount % COIN; int decimalPart = amount % COIN;
QString r = QString::number(wholePart); QString r = QString::number(wholePart);
if (decimalPart > 0) { if (decimalPart > 0)
{
QString decimalPartStr = QString::number(decimalPart); QString decimalPartStr = QString::number(decimalPart);
r = r + "." + decimalPartStr.rightJustified(NUMPLACES, '0'); r = r + "." + decimalPartStr.rightJustified(NUMPLACES, '0');
// Trim tailing 0s // Trim tailing 0s
while (r.right(1) == "0") { while (r.right(1) == "0")
r = r.left(r.length() - 1); r = r.left(r.length() - 1);
}
} }
return r; return r;
} }
QString CAmount::toDecimalUSDString() const { double CAmount::getDblAmount() const
double dblAmount = static_cast<double>(this->amount) / COIN; {
return static_cast<double>(this->amount) / COIN;
}
QString CAmount::toDecimalUSDString() const
{
double price = Settings::getInstance()->getZECPrice(); double price = Settings::getInstance()->getZECPrice();
return "$ " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalEURString() const { QString CAmount::toDecimalEURString() const
double dblAmount = static_cast<double>(this->amount) / COIN; {
double price = Settings::getInstance()->getEURPrice(); double price = Settings::getInstance()->getEURPrice();
return QLocale(QLocale::German).toString(this->getDblAmount() * price, 'f', 2) + "";
return QLocale(QLocale::German).toString(dblAmount*price, 'f', 2) + "";
} }
QString CAmount::toDecimalBTCString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalBTCString() const
{
double price = Settings::getInstance()->getBTCPrice(); double price = Settings::getInstance()->getBTCPrice();
return "BTC " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 9);
return "BTC " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 9);
} }
QString CAmount::toDecimalCNYString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalCNYString() const
{
double price = Settings::getInstance()->getCNYPrice(); double price = Settings::getInstance()->getCNYPrice();
return "¥ /元 " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "¥ /元 " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalRUBString() const { QString CAmount::toDecimalRUBString() const
double dblAmount = static_cast<double>(this->amount) / COIN; {
double price = Settings::getInstance()->getRUBPrice(); double price = Settings::getInstance()->getRUBPrice();
return "" + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalCADString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalCADString() const
{
double price = Settings::getInstance()->getCADPrice(); double price = Settings::getInstance()->getCADPrice();
return "$ " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalSGDString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalSGDString() const
{
double price = Settings::getInstance()->getSGDPrice(); double price = Settings::getInstance()->getSGDPrice();
return "$ " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalCHFString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalCHFString() const
{
double price = Settings::getInstance()->getCHFPrice(); double price = Settings::getInstance()->getCHFPrice();
return "CHF " + QLocale(QLocale::German).toString(this->getDblAmount() * price, 'f', 2);
return "CHF " + QLocale(QLocale::German).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalINRString() const {
double dblAmount = static_cast<double>(this->amount) / COIN; QString CAmount::toDecimalINRString() const
{
double price = Settings::getInstance()->getINRPrice(); double price = Settings::getInstance()->getINRPrice();
return "" + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalGBPString() const { QString CAmount::toDecimalGBPString() const
double dblAmount = static_cast<double>(this->amount) / COIN; {
double price = Settings::getInstance()->getGBPPrice(); double price = Settings::getInstance()->getGBPPrice();
return "£ " + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return "£ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalAUDString() const { QString CAmount::toDecimalAUDString() const
double dblAmount = static_cast<double>(this->amount) / COIN; {
double price = Settings::getInstance()->getAUDPrice(); double price = Settings::getInstance()->getAUDPrice();
return " $" + QLocale(QLocale::English).toString(this->getDblAmount() * price, 'f', 2);
return " $" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
} }
QString CAmount::toDecimalhushString() const { QString CAmount::toDecimalhushString() const
{
return this->toDecimalString() % " " % Settings::getTokenName(); return this->toDecimalString() % " " % Settings::getTokenName();
} }
QString CAmount::toDecimalhushUSDString() const { QString CAmount::toDecimalhushUSDString() const
{
auto usdString = this->toDecimalUSDString(); auto usdString = this->toDecimalUSDString();
if (!usdString.isEmpty()) if (!usdString.isEmpty())
return this->toDecimalhushString() % " (" % usdString % ")"; return this->toDecimalhushString() % " (" % usdString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushEURString() const { QString CAmount::toDecimalhushEURString() const
{
auto eurString = this->toDecimalEURString(); auto eurString = this->toDecimalEURString();
if (!eurString.isEmpty()) if (!eurString.isEmpty())
return this->toDecimalhushString() % " (" % eurString % ")"; return this->toDecimalhushString() % " (" % eurString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushBTCString() const { QString CAmount::toDecimalhushBTCString() const
{
auto btcString = this->toDecimalBTCString(); auto btcString = this->toDecimalBTCString();
if (!btcString.isEmpty()) if (!btcString.isEmpty())
return this->toDecimalhushString() % " (" % btcString % ")"; return this->toDecimalhushString() % " (" % btcString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushCNYString() const { QString CAmount::toDecimalhushCNYString() const
{
auto cnyString = this->toDecimalCNYString(); auto cnyString = this->toDecimalCNYString();
if (!cnyString.isEmpty()) if (!cnyString.isEmpty())
return this->toDecimalhushString() % " (" % cnyString % ")"; return this->toDecimalhushString() % " (" % cnyString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushRUBString() const { QString CAmount::toDecimalhushRUBString() const
{
auto rubString = this->toDecimalRUBString(); auto rubString = this->toDecimalRUBString();
if (!rubString.isEmpty()) if (!rubString.isEmpty())
return this->toDecimalhushString() % " (" % rubString % ")"; return this->toDecimalhushString() % " (" % rubString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushCADString() const { QString CAmount::toDecimalhushCADString() const
{
auto cadString = this->toDecimalCADString(); auto cadString = this->toDecimalCADString();
if (!cadString.isEmpty()) if (!cadString.isEmpty())
return this->toDecimalhushString() % " (" % cadString % ")"; return this->toDecimalhushString() % " (" % cadString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushSGDString() const { QString CAmount::toDecimalhushSGDString() const
{
auto sgdString = this->toDecimalSGDString(); auto sgdString = this->toDecimalSGDString();
if (!sgdString.isEmpty()) if (!sgdString.isEmpty())
return this->toDecimalhushString() % " (" % sgdString % ")"; return this->toDecimalhushString() % " (" % sgdString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushCHFString() const { QString CAmount::toDecimalhushCHFString() const
{
auto chfString = this->toDecimalCHFString(); auto chfString = this->toDecimalCHFString();
if (!chfString.isEmpty()) if (!chfString.isEmpty())
return this->toDecimalhushString() % " (" % chfString % ")"; return this->toDecimalhushString() % " (" % chfString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushINRString() const { QString CAmount::toDecimalhushINRString() const
{
auto inrString = this->toDecimalINRString(); auto inrString = this->toDecimalINRString();
if (!inrString.isEmpty()) if (!inrString.isEmpty())
return this->toDecimalhushString() % " (" % inrString % ")"; return this->toDecimalhushString() % " (" % inrString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushGBPString() const { QString CAmount::toDecimalhushGBPString() const
{
auto gbpString = this->toDecimalGBPString(); auto gbpString = this->toDecimalGBPString();
if (!gbpString.isEmpty()) if (!gbpString.isEmpty())
return this->toDecimalhushString() % " (" % gbpString % ")"; return this->toDecimalhushString() % " (" % gbpString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
QString CAmount::toDecimalhushAUDString() const { QString CAmount::toDecimalhushAUDString() const
{
auto audString = this->toDecimalAUDString(); auto audString = this->toDecimalAUDString();
if (!audString.isEmpty()) if (!audString.isEmpty())
return this->toDecimalhushString() % " (" % audString % ")"; return this->toDecimalhushString() % " (" % audString % ")";
else else
return this->toDecimalhushString(); return this->toDecimalhushString();
} }
CAmount CAmount::fromDecimalString(QString decimalString) { CAmount CAmount::fromDecimalString(QString decimalString)
{
auto amtParts = decimalString.split("."); auto amtParts = decimalString.split(".");
qint64 r = amtParts[0].toULongLong() * COIN; qint64 r = amtParts[0].toULongLong() * COIN;
if (amtParts.length() == 2) { if (amtParts.length() == 2)
{
auto trailingZeros = QString("0").repeated(NUMPLACES - amtParts[1].length()); auto trailingZeros = QString("0").repeated(NUMPLACES - amtParts[1].length());
r += QString(amtParts[1] + trailingZeros).toULongLong(); r += QString(amtParts[1] + trailingZeros).toULongLong();
} }

View File

@@ -26,6 +26,7 @@ public:
double toDecimalDouble() const; double toDecimalDouble() const;
QString toDecimalString() const; QString toDecimalString() const;
double getDblAmount() const;
QString toDecimalUSDString() const; QString toDecimalUSDString() const;
QString toDecimalEURString() const; QString toDecimalEURString() const;
QString toDecimalBTCString() const; QString toDecimalBTCString() const;