Access Keys:
Skip to content (Access Key - 0)


Kapittel 2.5 - Blandet aritmetikk

Added by Joachim Haagen Skeie , last edited by Joachim Haagen Skeie on Nov 21, 2009 22:22
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Ofte hender det at man ønsker å utføre aritmetiske operasjoner på variabler av forskjellig type, f.eks. int og double. Dersom vi ønsker å regne ut omkretsen til en sirkel med radius 5, benytter vi formelen:

3.14 * 2 * r = 3.14 * 2 * 5 = 31.4

I eksempelet overfor blander vi heltall og desimaltall. Java håndterer dette med å konvertere den minst inkluderende variablen til samme type som den mest inkluderende variabelen i operasjonen. Java utfører dermed følgende:

3.14 * 2 * 5 = 3.14 * 2.0 * 5 = 6.26 * 5 = 6.26 * 5.0 = 31.4

Selv om Java håndterer denne konverteringen kan det oppstå visse problemer ved bruk av blandet aritmetikk, f.eks. med uttrykket 8 / 5 * 3.0 som gir:

8 / 5 * 3.0 = 2 * 3.0 = 6.0

Mens det vi hadde forventet mest sannsynlig var:

8 / 5 * 3.0 = 8.0 / 5.0 * 3.0 = 2.67 * 3.0 = 8.0.

Når du benytter deg av aritmetiske regneoperasjoner med blandede variabel typer bør du benytte deg av paranteser. Dette gjør det mye enklere å lese og vedlikeholde koden samtidig som det blir mindre logiske feil i koden. Eksempelet overfor kan skrive om til:

8 / (5 * 3.0) = 8.0 / (5.0 * 3.0) = 8.0 * 15.0 = 120.0.

Husk at dersom du konverterer en variabel av typen int til double, kan du ikke lagre resultatet tilbake til en variabel av typen int, ettersom resultatet ikke vil være korrekt lenger.

Adaptavist Theme Builder (3.3.5-conf210) Powered by Atlassian Confluence 3.0.2, the Enterprise Wiki.