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


Kapittel 2.8 - java.lang.Math

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

Dersom du skriver et program som skal benytter til utregning hender det ofte at du har bruk for mer avanserte funksjoner enn de standard aritmetiske operatorene tilbyr, for eksempel kvadratrot, tangens til en vinkel, opphøyet i 5, osv.

Det er her java.lang.Math kommer inn i bildet. pakken java.lang er inkludert i samtlige java programmer og du kan dermed benytte deg av de statiske mattematiske metodene direkte v.hj.a Math.metode().

Følgende program leser inn to desimaltall fra kommandolinjen på samme måte som beskrevet tidligere og utfører en rekke mattematiske utregninger ved hjelp av java.lang.Math.

public class MathEn
{
	public static void main(String[] args)
	{
		//Skriv ut feilmelding dersom det ikke er eksakt 1 argument
		//fra kommandolinjen
		if (args.length != 2)
		{
			System.out.println("Bruk: java MathEn a b\n" + 
				"Der a og b er et desimaltall");
		}
		else	//Regn ut omkrets og volum til sirkelen
		{
			double a = 0;
			double b = 0;
			
			//Forsøk å lese inn en heltallsverdi
			try
			{
				//Prøv å parse en double verdi fra komando linje argumentet
				a = Double.parseDouble(args[0]);
				b = Double.parseDouble(args[1]);
			}
			//Dersom argumentet ikke er en int, skriv ut feilmelding og
			//avslutt programmet
			catch (NumberFormatException nfe)
			{
				System.out.println("a og b må begge være et desimaltall: " + nfe.getMessage());
				System.exit(0);	//Avslutter programmet
			}
			
			//Har vi kommet hit vet vi at a og b er gyldige desimaltall
			System.out.println("a opphøyet med b er: " + Math.pow(a, b));
			System.out.println("absolutt verdien av a - b er: " + Math.abs(a-b));
			System.out.println("a avrundet til nærmeste heltall er: " + Math.round(a));
			System.out.println("a avrundet oppover til nærmeste heltall: " + Math.ceil(a));
			System.out.println("a avrundet nedover til nærmeste heltall: " + Math.floor(a));
			System.out.println("Den minste verdien til a eller b er: " + Math.min(a, b));
			System.out.println("Den største verdien til a eller b er: " + Math.max(a, b));
			System.out.println("Logaritmen til a er: " + Math.log(a));
			System.out.println("Kvadratroten til a ganget med b er: " + Math.sqrt(a * b));
			System.out.println("");
			
			//Konverter a til radianer a * (2pi/360)
			double radA = a * 2.0 * Math.PI/360.0;
			
			System.out.println("Cosinus til radA er: " + Math.cos(radA));
			System.out.println("Sinus til radA er: " + Math.sin(radA));
			System.out.println("Tangens til radA er: " + Math.tan(radA));
			
			System.out.println("");
			
			System.out.println("Pi har verdien: " + Math.PI);
			System.out.println("e har verdien: " + Math.E);
			
			
		}
	}
}

Eksempelet overfor viser bare noen av funksjonene som er tilgjengelig gjennom java.lang.Math. For å finne ut hvilke metoder som er tilgjengelig kan du titte på http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html.

jhb:/java/kode/Kapittel 2 jhb$ javac MathEn.java
jhb:/java/kode/Kapittel 2 jhb$ java MathEn 2.5 4.5
a opphøyet med b er: 61.76323555016366
absolutt verdien av a - b er: 2.0
a avrundet til n?rmeste heltall er: 3
a avrundet oppover til n?rmeste heltall: 3.0
a avrundet nedover til n?rmeste heltall: 2.0
Den minste verdien til a eller b er: 2.5
Den største verdien til a eller b er: 4.5
Logaritmen til a er: 0.9162907318741551
Kvadratroten til a ganget med b er: 3.3541019662496847

Cosinus til radA er: 0.9990482215818578
Sinus til radA er: 0.043619387365336
Tangens til radA er: 0.04366094290851206

Pi har verdien: 3.141592653589793
e har verdien: 2.718281828459045
Adaptavist Theme Builder (3.3.5-conf210) Powered by Atlassian Confluence 3.0.2, the Enterprise Wiki.