next up previous contents index
Next: Lisää sijoituskäskystä Up: Muuttujat ja sijoituskäsky Previous: Lisää muuttujien tyyppejä   Sisältö   Hakemisto

Laskutoimituksia kokonais- ja desimaaliluvuille

Kokonaisluvuille Javassa on olemassa seuraavat laskutoimitukset:
+ yhteenlasku
- vähennyslasku
* kertolasku
/ jakolasku
% jakojäännös

Yhteen-, vähennys- ja kertolasku toimivat niin kuin koulumatematiikan perusteella voi olettaakin. Ainoa poikkeus on se, että kokonaisluvuilla on rajoitettu koko ja jos lopputulos menee käytetyn lukualueen yli, se ei enää pidä paikkaansa. Esimerkiksi sijoituksen

int suuriLuku;
suuriLuku = 1333 * 5000001;
lopputulos ei ole haluttu, koska kertolaskun tulos on suurempi kuin suurin mahdollinen int-tyyppinen arvo.

Kokonaislukujen jakolaskussa kannattaa ottaa huomioon se, että myös jakolaskun lopputulos on kokonaisluku, joka saadaan ottamalla osamäärän kokonaisosa. Tämä voi joskus johtaa yllättäviin virhetilanteisiin. Jos edellä esitetyssä lämpötilamuunnosohjelmassa muunnoksen laskeva sijoituskäsky olisi kirjoitettu

celsius = 5 / 9 * (fahrenheit - 32);
tulisi muuttujan celsius arvoksi aina nolla muuttujan fahrenheit arvosta riippumatta, koska ensin laskettaisiin kokonaislukujakolasku 5/9, jonka arvo (kokonaisosan arvo) on aina 0.

Kahden kokonaisluvun jakolaskun jakojäännöksen saa operaatiolla %, esimerkiksi lausekkeen 14 % 4 arvo on 2. Jakojäännös toimii arkikokemuksen mukaisella logiikalla vain positiivisilla luvuilla.

Jos lausekkeessa on useita operaattoreita, niin ensin lasketaan aina kerto- ja jakolaskut ja vasta niiden jälkeen yhteen- ja vähennyslaskut. Samanarvoiset laskutoimitukset suoritetaan vasemmalta oikealle. Järjestystä voi muuttaa suluilla.

Desimaalilukumuuttujille on käytössä samat operaatiot kuin kokonaislukumuuttujillekin, mutta nyt jakolaskun lopputulosta ei katkaista kokonaisluvuksi. Jakojäännöksen laskeminen ei ole double-tyyppisille muuttujille yleensä järkevää, vaikka se periaatteessa on mahdollista.

Desimaalilukuja käytettäessä on kuitenkin muistettava, että lukujen tallennustilasta johtuva rajoitus tallennettavien lukujen tarkkuudelle voi aiheuttaa ongelmia. Jos esimerkiksi lasketaan yhteen hyvin suuri ja hyvin pieni luku, ei pienempi luku välttämättä vaikuta lopputulokseen lainkaan käytettävän tarkkuuden vuoksi.


next up previous contents index
Next: Lisää sijoituskäskystä Up: Muuttujat ja sijoituskäsky Previous: Lisää muuttujien tyyppejä   Sisältö   Hakemisto
Kerttu Pollari-Malmi 2003-01-27