Vypocet konstant v C-ecku

Od: Datum: 16.02.13 13:52 odpovědí: 3 změna: 16.02.13 16:24

Dobry den,

snazim se programovat v C-ecku, ale narazil jsem na jeden problem se kterym nemuzu hnout. Mam nadefinovane tyto konstanty:

#define A 4096

#define B 3300

#define C A/B

Kdyz to spustim, tak je v konstante C = 1, ale spravne by to melo byt 1,2412. Nevite proc to spatne pocita?


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 16.02.13 14:24

Překladač bere A i B jako celá čísla (int) a tak s nimi pak i počítá. celé číslo/celé číslo je pro něj zase celé číslo. Musíš mu nějak říct, že chceš čísla s des. čárkou (double). Takže např.
#define A 4096.0
#define B 3300.0
#define C A/B
nebo
#define A 4096
#define B 3300
#define C (double)A/B

Ohodnoceno: 0x
 
Datum: 16.02.13 14:40
avatar

Také možno #define A 4096.0f , pokud stačí float místo double.

Ohodnoceno: 0x
 
Od: kotrba
Datum: 16.02.13 16:24

Dekuji moc za rady ;) Nakonec jsem to vyresil takto:
#define A 4096
#define B 3300
#define C (float)A / B

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.