mam taky prroblemik, nwm preco, ale ked konvertujem Double cislo do integer tak sa mi stane toto
88.00000 > 88 to je ok
Ale ak mam
80.00000 > 79 nwm prece, ale ked mam cislo ktore konci 0 tak mi to hodi cislo o 1 mensie. Nejake napady ako to vyriecit?
mam normalne
int de;
double d;
vnich mam nejake hodnoty
a ak dam de=d; alebo aj de=(int)d; tak vzdy to iste.
Prosim, dost surne.
Double to Int - C
Re: Double to Int - C
skus poslat zdrojak alebo usek kodu
//autoeditácia príspevku (05 Nov 2011, 21:03)
Poslal mi posotu source
ak niekto vie helfnite mu
//autoeditácia príspevku (05 Nov 2011, 21:16)
Neviem sprintf som nikdy nerobil este tak si skus pozriet ci v nom neni chyba ci mas aj int aj double
a skus namiesto de=d; de=(int)d; asi nepomoze ale fakt neviem
//autoeditácia príspevku (05 Nov 2011, 21:03)
Poslal mi posotu source
int *polec, i,a,de;
double d;
polec=(int *) malloc(10 * sizeof(int));
for (i=0;i<10;i++)
{
polec=0;
}
for (i=0;i<u;i++)
{
a=(int)pole;
d=((pole-a)*100);
de=d;
printf("x%lfx%dx\n",d,de);
}
vtom printe skusam ci su tam hodnote maju byt
pole obsahuje cislo double.
potom zneho spravim integer teda mi ostane len cela cast.
d=((pole-a)*100); tuto chcem ulozit desatinnu cast do d cize od celeho cisla odcitam celu cast ostanemi desatinna a vynasobim 100.
la ulozim to do de teda to zmenim na int. Lenze ked to vypisem tak tam mam rozne cisla. Niekedy mam dobre a niekedy mam d 8.0000 a de 9 nechapem.
ak niekto vie helfnite mu
//autoeditácia príspevku (05 Nov 2011, 21:16)
Neviem sprintf som nikdy nerobil este tak si skus pozriet ci v nom neni chyba ci mas aj int aj double
a skus namiesto de=d; de=(int)d; asi nepomoze ale fakt neviem
Re: Double to Int - C
Na vypisovanie double sa používa %f, nie %lf. Neviem, či je chyba len tam, ale na prvý pohľad mi z toho chaosu prišlo do oka len toto.
Re: Double to Int - C
Mohlo sa stat, ze som mal overflow integer? Skusal som hocico, nakoniec som double zmenil iba na float a uz to ide ako ma.