Tak ten prevod z desatinneho cisla na cele som spravil pomocou Qstringu, kedze robim v QT v Qtcreatori. V Linuxe.
Kód:
#include <QCoreApplication>
#include <QTextStream>
#include <QString>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream von (stdout);
QString retazec = "3009.34";
von << retazec << endl;
int vyscislo = 0;
double desatcislo = 0;
int celkpocet = 0;
if(retazec.contains("."))
{
celkpocet = retazec.length();
foreach(QChar s, retazec)
{
vyscislo++;
if(s.isPunct())
{
break;
}
}
celkpocet -= vyscislo;
desatcislo = retazec.toDouble();
for (int i = 0; i < celkpocet; i++)
{
desatcislo *= 10;
}
vyscislo = desatcislo;
}
else
{
vyscislo = retazec.toInt();
}
return a.exec();
}
potom samotny kod na najdenie najmensieho spolocneho nasobku s celymi cislami a potom na zaver zase premenenie z Int na Double.
Kód:
nsn = vacsie1 * pocet;
cout.precision(15);
vysledok = static_cast<long double>(nsn);
cout << vysledok << endl;
if(retazec.contains("."))
{
for (int i = 0; i < celkpocet; i++)
{
vysledok /= 10;
}
}
cout << "Nsn vami zadanych cisel je; " << vysledok << endl;
Kod este nie je uplny, spravil som ho zatial len pre jedno cislo, ale snad pre ukazku alebo poradenie staci.