Double to Int - C

Programovacie jazyky, rady, poradňa...
Pascalwb
Addict
Addict
Príspevky: 3108
Registrovaný: 09 feb 2010, 23:26

Double to Int - C

Príspevok od používateľa Pascalwb »

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.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: Double to Int - C

Príspevok od používateľa jojinkho »

skus poslat zdrojak alebo usek kodu

//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
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Double to Int - C

Príspevok od používateľa BX »

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.
Pascalwb
Addict
Addict
Príspevky: 3108
Registrovaný: 09 feb 2010, 23:26

Re: Double to Int - C

Príspevok od používateľa Pascalwb »

Mohlo sa stat, ze som mal overflow integer? Skusal som hocico, nakoniec som double zmenil iba na float a uz to ide ako ma.
Napísať odpoveď