Løs gåden for mig.

Tags:    c++

Bliver ør i hovedet.
Fold kodeboks ind/udKode 

Returnerer: "0".
Går ud fra at "problemet" ligger i at 5/100 ender i et kommatal.

På forhånd tak.



Indlæg senest redigeret d. 30.10.2006 21:55 af Bruger #8502
Det er lige præcis hvad problemet er ;). Integer understøtter kun heltal. Du skal istedet bruge float eller double.



du kunne jo prøve 2 ting:
enten:
(a*100)/b

eller bruge doubles:

double result;
og så fjerne result fra listen af dine int's





Problemet blev løst ved at give alle type "float".

Tak for hjælpen.



Hov, dobbelt indlæg.



Indlæg senest redigeret d. 30.10.2006 22:18 af Bruger #8502
valget mellem float og double er et spørgsmål om precision, doubles er mere nødagtige men de fylder normalt også mere



Må jeg tage i betragtning i fremtiden.
Dette var bare et hurtigt eksempel på et forholdsvis simpelt problem, jeg ikke selv kunne løse umiddelbart.

Her er et andet.. er det muligt at lave en funktion som runder op/ned? - Tænker her på det kommatal jeg får frem i dét eksempel.

Altså at result returnerer 1.6/1.5 i stedet for henholdsvis 1.587/1.525?



Indlæg senest redigeret d. 30.10.2006 22:38 af Bruger #8502
de er indbyggede, der er tre af slagsen, floor, ceil og round, sidst nævnte bør du kigge på. inkluder math.h.

de afrunder dog til heltal, men så kan du gange med 10 først, og så dividere 10 bagefter.

//Troels



<EDIT>
Troede opgaven lød på at lave outputtet om, men det var selve tallet der skulle laves om. Jeg har ladet løsningen nedenfor stå, hvis nogen skulle få brug for det.
</EDIT>

Du kan bruge precision
Fold kodeboks ind/udKode 

Dog er der nogle små problemer, da precision kun virker på enkelte størrelser tal af gangen. Hvis tallet du startede med 52,... ville programmet ovenfor ikke virke. Man bliver nød til at lave en form "checkning"
Fold kodeboks ind/udKode 

Men, det ser jo ikke just godt ud, så måske ikke den optimale løsning. Du kunne også vælge at bruge printf, men ved ikke. Nogle er ikke glade for det når man jo snakker C++
Fold kodeboks ind/udKode 

Sidste metode virker lige meget hvor stort tallet er, så det er i mine den bedste løsning.



Indlæg senest redigeret d. 31.10.2006 06:51 af Bruger #8422
Kanon.

Tak for det.



t