| | |
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | Napísal 17mark: 12.11.2016 18:45 | |
|
Zdravím, mam problém s týmto kódom. Neviem prečo ale na konci mi nikdy nevypise 0.01 vid vystup na konci. Za kazdu pomoc dakujem. Kód: #include <stdio.h> float toreturn; float getChange(float number); int main(){ toreturn= 50.23; if( toreturn > 0 ){ printf("\nCollect your payback: "); getChange(100); getChange(50); getChange(20); getChange(10); getChange(5); getChange(2); getChange(1); getChange(0.50); getChange(0.20); getChange(0.10); getChange(0.05); getChange(0.02); getChange(0.01); }
float getChange(float number){ while( toreturn >= number ){ toreturn = toreturn - number; printf("%.2f ", number); } } Collect your payback: 50.00 0.20 0.02
|
|
Registrovaný: 27.06.09 Prihlásený: 04.03.23 Príspevky: 332 Témy: 3 Bydlisko: Košice - ok... | Napísal focko: 12.11.2016 19:02 | |
|
TUKE? skús `double`, ale ja som aj tak s tým pohorel minulý rok a presne na 1 cente, nepresnosť desatinných čísel // úpravaešte ti nedoporučujem pristupovať k `toreturn` z funkcie, radšej pridaj parameter
_________________ GitHub: mfocko | mfocko.xyz OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed) Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission] |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | Napísal autor témy 17mark: 12.11.2016 19:23 | |
|
TUKE, TUKE... Dakujem za pomoc , skusim to
|
|
Registrovaný: 27.06.09 Prihlásený: 04.03.23 Príspevky: 332 Témy: 3 Bydlisko: Košice - ok... | Napísal focko: 12.11.2016 19:29 | |
|
skús aj taký vstup: Kód: 1404.3 2.01 0.10 20 70 46 40 1 100 9 0.05 14 52 0.05 10 0.50 51 71 43 0.10 0.10 73 73 75 0.05 49 10 88 24 1 2 92 46 68 0.50 0.10 91 50 70 a ešte: Kód: 39.98 0.50 0.01 0.02 0.20 0.20 2 2 5 0.05 10 20 0
_________________ GitHub: mfocko | mfocko.xyz OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed) Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission] |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | Napísal autor témy 17mark: 12.11.2016 19:41 | |
|
double mi akosi nepomohlo, stale to robi
|
|
Registrovaný: 27.06.09 Prihlásený: 04.03.23 Príspevky: 332 Témy: 3 Bydlisko: Košice - ok... | Napísal focko: 12.11.2016 19:45 | |
|
https://support.microsoft.com/en-us/kb/214118`round()` môžeš nájsť v <math.h>, skús // úpravaale musíš násobiť, lebo sa nedá nastaviť počet desatinných miest cez parameter
_________________ GitHub: mfocko | mfocko.xyz OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed) Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission] |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 12.11.2016 21:24 | |
|
V podstate vôbec nepotrebuješ desatinné čísla. Vstup si vynasob 100 a vrátené peniaze potom zase vydelíš 100. A pôjdeš nie od 100 do 0.01, ale od 10000 do 1.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | Napísal autor témy 17mark: 13.11.2016 18:11 | |
|
To uz mam poriesene ako tak, ale vyskytla sa mi chyba niekde inde. Potrebujem porovnat 2 float cisla tj. cena ktoru pouzivatel zada (bill) a kolko hodil penazi(overall) bohuzial, float je pri pocitani nepresny a bill ked zadam zo vstupu napriklad 73.23 tak po vypise mi vypise 72.99999998 a ked pocitam bill tak ked presne zadam tych 73.23 dokopy tak sa mi to spocita na 79.9997 napr. Potrebujem bill a overall porovnat v podmienke if( bill == overall ) no samozrejme ze cisla niesu rovnake cize podmienku preskoci a ide na else. Ako sa to da poriesit? Ako mozem formatovat cislo (resp. zaokruhlit) na 2 desatinne miesta? Vdaka
|
|
Registrovaný: 27.06.09 Prihlásený: 04.03.23 Príspevky: 332 Témy: 3 Bydlisko: Košice - ok... | Napísal focko: 13.11.2016 18:19 | |
|
knižnica: <math.h> a tam je funkcia round() http://www.cplusplus.com/reference/cmath/round/// úpravaak to chceš na dve desatinné miesta tak: Kód: cislo = round(cislo * 100.0)/100.0;
_________________ GitHub: mfocko | mfocko.xyz OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed) Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission] |
|
Registrovaný: 17.03.13 Prihlásený: 09.04.18 Príspevky: 112 Témy: 39 | Napísal autor témy 17mark: 13.11.2016 18:57 | |
|
Dakujem
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 13.11.2016 19:21 | |
|
Desatinné čísla sa ideálne porovnávajú cez rozdiel, tzn. napr. (abs(a-b) < 0.0001), kde to 0.0001 je požadovaná presnosť. Je to kvôli reprezentácii čísel, kde aj teoreticky rovnaké čísla môžu byť v pamäti uložené trochu rozdielne a presná zhoda preto väčšinou nefunguje.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| jednoducha funkcia v PHP, ASP | 7 | 693 | 26.12.2007 13:42 Flety | | Jednoduchá hashovacia funkcia v JavaScript, VBScript, Ajax | 3 | 394 | 20.09.2014 20:27 chrono | | ajax jednoducha funkcia v JavaScript, VBScript, Ajax | 7 | 530 | 24.04.2010 20:20 Ďuri | | nefunguje funkcia v JavaScript, VBScript, Ajax | 3 | 400 | 19.03.2011 12:31 Ďuri | | nefunguje funkcia imagefilter() v PHP, ASP | 18 | 889 | 09.11.2009 21:29 Snacker | | javascript funkcia nefunguje v JavaScript, VBScript, Ajax | 3 | 521 | 22.08.2010 22:33 neopagan | | nefunguje funkcia trim() v PHP, ASP | 3 | 642 | 27.10.2011 19:18 Light | | funkcia mail() nefunguje v PHP, ASP | 8 | 1280 | 24.11.2009 16:52 programmer | | Funkcia date('Y-m-d H:i:s'); nefunguje v PHP, ASP | 12 | 575 | 28.03.2017 17:36 JanoF | | Jednoduchá stránka v Webhosting a servery | 7 | 560 | 06.05.2014 14:09 JanoF | | Jednoducha vyhybka v Zvuk | 3 | 2349 | 12.01.2010 20:30 KocuR | | jednoducha kalkulacka v Assembler, C, C++, Pascal, Java | 6 | 1475 | 17.01.2012 15:33 vychytraly | | Jednoducha otazka.... v nVidia grafické karty | 18 | 1199 | 05.05.2008 17:08 luboxxx | | Jednoducha galeria v Ostatné | 1 | 502 | 09.02.2010 14:17 don jebot | | python - jednoduchá úloha v Perl, Python, Ruby, CGI | 5 | 962 | 08.06.2020 14:50 ux | | jednoducha 2d animacia v Grafické programy | 5 | 613 | 24.07.2011 16:06 svejk |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|