Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.03.13
Prihlásený: 09.04.18
Príspevky: 112
Témy: 39
Príspevok NapísalOffline : 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


Offline

Užívateľ
Užívateľ
C jednoducha funkcia ktora nefunguje

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3
Bydlisko: Košice - ok...
Príspevok NapísalOffline : 12.11.2016 19:02

TUKE? :D
skús `double`, ale ja som aj tak s tým pohorel minulý rok a presne na 1 cente, nepresnosť desatinných čísel :D

// úprava
eš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]
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.03.13
Prihlásený: 09.04.18
Príspevky: 112
Témy: 39
Príspevok Napísal autor témyOffline : 12.11.2016 19:23

TUKE, TUKE... :D Dakujem za pomoc ;), skusim to


Offline

Užívateľ
Užívateľ
C jednoducha funkcia ktora nefunguje

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3
Bydlisko: Košice - ok...
Príspevok NapísalOffline : 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]
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.03.13
Prihlásený: 09.04.18
Príspevky: 112
Témy: 39
Príspevok Napísal autor témyOffline : 12.11.2016 19:41

double mi akosi nepomohlo, stale to robi :(


Offline

Užívateľ
Užívateľ
C jednoducha funkcia ktora nefunguje

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3
Bydlisko: Košice - ok...
Príspevok NapísalOffline : 12.11.2016 19:45

https://support.microsoft.com/en-us/kb/214118
`round()` môžeš nájsť v <math.h>, skús

// úprava
ale 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]
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 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!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.03.13
Prihlásený: 09.04.18
Príspevky: 112
Témy: 39
Príspevok Napísal autor témyOffline : 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


Offline

Užívateľ
Užívateľ
C jednoducha funkcia ktora nefunguje

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3
Bydlisko: Košice - ok...
Príspevok NapísalOffline : 13.11.2016 18:19

knižnica: <math.h> a tam je funkcia round() http://www.cplusplus.com/reference/cmath/round/

// úprava
ak 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]
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.03.13
Prihlásený: 09.04.18
Príspevky: 112
Témy: 39
Príspevok Napísal autor témyOffline : 13.11.2016 18:57

Dakujem ;)


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 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!
Odpovedať na tému [ Príspevkov: 11 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. jednoducha funkcia

v PHP, ASP

7

693

26.12.2007 13:42

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchá hashovacia funkcia

v JavaScript, VBScript, Ajax

3

394

20.09.2014 20:27

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ajax jednoducha funkcia

v JavaScript, VBScript, Ajax

7

530

24.04.2010 20:20

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nefunguje funkcia

v JavaScript, VBScript, Ajax

3

400

19.03.2011 12:31

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nefunguje funkcia imagefilter()

v PHP, ASP

18

889

09.11.2009 21:29

Snacker Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. javascript funkcia nefunguje

v JavaScript, VBScript, Ajax

3

521

22.08.2010 22:33

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nefunguje funkcia trim()

v PHP, ASP

3

642

27.10.2011 19:18

Light Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. funkcia mail() nefunguje

v PHP, ASP

8

1280

24.11.2009 16:52

programmer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Funkcia date('Y-m-d H:i:s'); nefunguje

v PHP, ASP

12

575

28.03.2017 17:36

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoduchá stránka

v Webhosting a servery

7

560

06.05.2014 14:09

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoducha vyhybka

v Zvuk

3

2349

12.01.2010 20:30

KocuR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoducha kalkulacka

v Assembler, C, C++, Pascal, Java

6

1475

17.01.2012 15:33

vychytraly Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoducha otazka....

v nVidia grafické karty

18

1199

05.05.2008 17:08

luboxxx Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Jednoducha galeria

v Ostatné

1

502

09.02.2010 14:17

don jebot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. python - jednoduchá úloha

v Perl, Python, Ruby, CGI

5

962

08.06.2020 14:50

ux Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. jednoducha 2d animacia

v Grafické programy

5

613

24.07.2011 16:06

svejk Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra