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)
{
if (args.length != 2)
{
System.out.println("Bruk: java MathEn a b\n" +
"Der a og b er et desimaltall");
}
else {
double a = 0;
double b = 0;
try
{
a = Double.parseDouble(args[0]);
b = Double.parseDouble(args[1]);
}
catch (NumberFormatException nfe)
{
System.out.println("a og b må begge være et desimaltall: " + nfe.getMessage());
System.exit(0); }
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("");
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