Čaute
V živote som printf nepoužíval, ale v zadaní toho, čo teraz robím, sa vyžaduje používať printf a vypisovať formátom %.10g (tiež tomu moc nechápem). Na konci programu mám 2 int-y, ktoré mám vydeliť a takto vypísať.
Pri testovaní som tam mal čísla 10250367 a 18. Po vydelení mi vypísalo 569464.8125, pričom na google a windows kalkulačke mi vyhodilo 569464.83333. Keď som na kalkulačke vynásobil 569464.8125*18, vyšlo 10250366.625. A keď som spustil jednoduchý program:
#include <cstdio>
using namespace std;
int main()
{
int a=10250367;
int b=18;
printf("%.10g\n",(float)a/(float)b);
float c=(float)a/(float)b;
printf("%.10g\n",c);
printf("%.10g\n",c*(float)b);
}
výstup bol:
569464.8125
569464.8125
10250367
A teraz neviem či som ja debil a neviem používať kalkulačku, alebo sa môj komp pomýli pri delení 10 miliónov dvoj-ciferným číslom už na druhom desatinnom mieste. Veď to by vôbec nemal byť problém dokonca aj s float-om nie ??