Problém s typem float: překladač hlásí, že se jedná o double

Ahoj, mám problém při vypisování desetinného čísla na LCD displej. Překladač hlásí chybu v tom, že mám proměnnou typu double a ne float. Přitom jí mám zadefinovanou jako float. přikládám část zdrojáku, jestli v tom někdo neuvidíte chybu…

[code]
float x = 0;
float y = 0;
int r=0;
int vysledek=0;
float vypocet=0;
if(r==0) {vypocet=x+y;}
if(r==1) {vypocet=x-y;}
if(r==2) {vypocet=x*y;}
if(r==3) {vypocet=x/y;}

lcd_gotoxy(11,1);
//itoa(vypocet,ssss,10);
if(vysledek==1){
sprintf(ssss,"%d",vypocet);
lcd_puts(ssss);}[/code]

:arrow_right: administrator: přejmenováno z "problém s typem float"

Běžně překladače při operaci s float mají výsledek také float, ale možná že Tvůj překladač dělá výpočty v double, pak by se muselo dělat přetypování:

if(r==0) {vypocet=(float)(x+y);} if(r==1) {vypocet=(float)(x-y);} if(r==2) {vypocet=(float)(x*y);} if(r==3) {vypocet=(float)(x/y);}
A ještě jedna věc - máš chybu v zobrazení, vypisuješ číslo float jako int, měl bys tam mít:
sprintf(ssss,"%f",vypocet);

díky za radu :slight_smile: už to šlape