Pagina 1 van 1

c++ rekenen?

Geplaatst: 15 maa 2015, 19:32
door Heronic
value is een double, de waarde klopt : 189
ckv is een float, de waarde klopt : 0.39
result is een double.

result = value * ckv : 73 ipv 73.71 <- geen decimalen dus!

debug outputje :

Code: Selecteer alles

value :  189  ckv :  0.39  ckg : 0
0 73 0 0 0 0
73
73.71
Ik heb dan maar :
double1 = 189
float1 = 0.39
double2 = double1*float1

Het resultaat hiervan is die 73.71 welke dus perfect is.

Waarom loopt de ene berekening goed en de andere niet?

Re: c++ rekenen?

Geplaatst: 15 maa 2015, 19:37
door butskristof
Probeer eens value op 189.0 te zetten?

EDIT: zou natuurlijk geen verschil mogen uitmaken aangezien c++ statically typed is, maar toch.

Welke compiler gebruik je?
Ben je zeker dat result nergens per ongeluk naar een int is omgezet?

Re: c++ rekenen?

Geplaatst: 15 maa 2015, 19:39
door honda4life
Delen is /
Maar dat wist je waarschijnlijk al hé, dat is niet zo duidelijk in je voorbeeldje met :
butskristof schreef:Probeer eens value op 189.0 te zetten?
Zou niet uit mogen maken vermits deze al gedeclareerd is als double.

Re: c++ rekenen?

Geplaatst: 15 maa 2015, 19:43
door butskristof
Maar als je een double output moet die normaal toch sowieso 189.0 printen denk ik?

EDIT: nevermind, is blijkbaar toch niet het geval. :eek:

Re: c++ rekenen?

Geplaatst: 15 maa 2015, 20:14
door gm123
Er 189.0 van maken is waarschijnlijk de oplossing. Sommige compilers doen al eens rare dingen als het op rekenen met doubles aankomt.

Re: c++ rekenen?

Geplaatst: 15 maa 2015, 20:15
door Heronic
Bij het verduidelijken is mijn oog op een dubbele declaratie gevallen.
Had een global double gemaakt en blijkbaar had ik hem in de functie nog eens als int ook, vreemd dat ik daar geen toeters en bellen voor kreeg.