Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

1,3*100 =129 ???

[es] :: C/C++ programiranje :: C/C++ za početnike :: 1,3*100 =129 ???

[ Pregleda: 2350 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aleksandarzz
Aleksandar Živković
Šped plus
Veliko Gradište

Član broj: 257099
Poruke: 159
*.dynamic.isp.telekom.rs.



+26 Profil

icon 1,3*100 =129 ???24.02.2016. u 18:58 - pre 99 meseci
float s;
int d, n, m;
cin >>s >>d;
m=s*100;
n=m/d;
if ((m%d)==0) cout <<" potrebno je " <<n <<" plocica";
else if ((m-(n*d))>(((n+1)*d)-m)) cout <<" potrbno je " <<n+1 <<" plocica ";
else cout <<" potrno je " <<n <<" plocica";
cout <<m;

Ne sećam se više kako glasi zadatak, ovo je sa nekog takmičenja za 5/6 razred osnovne škole.
Kada se za s unese 1.3 onda je m=129, a ne 130 ??? U svakoj drugoj varijanti koju sam probao radi tačno. Jel` zna neko zašto
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: 1,3*100 =129 ???24.02.2016. u 20:34 - pre 99 meseci
https://en.wikipedia.org/wiki/Floating_point#Accuracy_problems
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: 1,3*100 =129 ???24.02.2016. u 20:40 - pre 99 meseci
umesto
float s;
bolje je staviti
double s;

umesto
m=s*100;
bolje je
m=ceil(s*100);
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.ptt.rs.



+2789 Profil

icon Re: 1,3*100 =129 ???27.02.2016. u 17:34 - pre 99 meseci
1.3*100 ispada nešto malo manje od 130. Međutim, prilikom pretvaranja realnog broja u ceo zaokrugljuje se na ceo broj koji po apsolutnoj vrednosti ne premašuje realan. Drugim rečima, 129.999 se pretvara u 129.

Ako ti treba najbliža celobrojna vrednost, onda ti je najbolje rešenje

m=100*s+0.5;
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

aleksandarzz
Aleksandar Živković
Šped plus
Veliko Gradište

Član broj: 257099
Poruke: 159
*.dynamic.isp.telekom.rs.



+26 Profil

icon Re: 1,3*100 =129 ???28.02.2016. u 11:42 - pre 99 meseci
ali zašto je onda 1,4*100 = 140?
Isprobao sam razne brojeve i netačno rešenje sam dobio samo kad unesem 1,3 ili 2,3
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: 1,3*100 =129 ???28.02.2016. u 15:33 - pre 99 meseci
http://www.binaryconvert.com/convert_float.html

Evo ti sajta.
Unesi decimalan broj 1.3 i konvertuj ga u float.
Dobiješ broj:
1.2999999523162841796875

ako to uradiš sa double, dobiješ
1.30000000000000004440892098501
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: 1,3*100 =129 ???

[ Pregleda: 2350 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.