Java Academy · Lektion

Det grundlæggende om Math-klassen

Brug Math.abs, Math.pow, Math.sqrt, Math.random og andre hyppigt anvendte Math-metoder.

Lektion 1 af 413 trin

Det grundlæggende om Math-klassen er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Java Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Java Academy-kurset indeholder 4 lektioner i alt.

Math-klassen

Klassen java.lang.Math indeholder statiske hjælpemetoder til almindelige matematiske operationer. Den er altid tilgængelig — ingen import er nødvendig.

Absolutværdi og fortegn

Math.abs() returnerer absolutværdien, som ikke er negativ. Math.signum() returnerer -1.0, 0.0 eller 1.0 afhængigt af fortegnet.

System.out.println(Math.abs(-42));      // 42
System.out.println(Math.abs(3.14));     // 3.14
System.out.println(Math.signum(-5.0));  // -1.0
System.out.println(Math.signum(0.0));   //  0.0
System.out.println(Math.signum(7.0));   //  1.0

Potenser, kvadratrødder og kubikrødder

Brug Math.pow(base, exp) til potenser, Math.sqrt() til kvadratrødder og Math.cbrt() til kubikrødder.

System.out.println(Math.pow(2, 10));  // 1024.0
System.out.println(Math.sqrt(144));   // 12.0
System.out.println(Math.cbrt(27));    // 3.0

// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0

Minimum, maksimum og begrænsning

Math.min() og Math.max() returnerer henholdsvis den mindste og største af to værdier. Kombinér dem for at implementere en værdibegrænsning, der holder en værdi inden for et interval.

int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20

// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
    return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5,  0, 100)); // 0
System.out.println(clamp(75,  0, 100)); // 75

Gulv, loft og afrunding

Math.floor() runder ned, Math.ceil() runder op, og Math.round() afrunder til det nærmeste heltal (halv opad).

double price = 9.3;
System.out.println(Math.floor(price));  // 9.0
System.out.println(Math.ceil(price));   // 10.0
System.out.println(Math.round(price));  // 9

double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)

// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57

Logaritmer og eksponentialfunktioner

Math.log() beregner den naturlige logaritme (med grundtal e), Math.log10() beregner logaritmen med grundtal 10, og Math.exp() beregner e^x.

System.out.println(Math.log(Math.E));   // 1.0
System.out.println(Math.log10(1000));   // 3.0
System.out.println(Math.exp(1));        // 2.718281828...

// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0

// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72

Trigonometriske metoder

Math indeholder trigonometriske funktioner, der accepterer vinkler i radianer. Brug Math.toRadians() til at konvertere grader til radianer.

double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000

// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);

Tilfældige tal

Math.random() returnerer en double i intervallet [0.0, 1.0). Gang med en faktor, og cast resultatet for at få heltal i et interval. Hvis du har brug for bedre tilfældighed, bør du foretrække java.util.Random.

// Random double [0.0, 1.0)
double rand = Math.random();

// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6

// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);

Konstanter: PI og E

Math.PI og Math.E er double-konstanter for π og Eulers tal e. Brug dem til geometriske og finansielle beregninger.

System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E);  // 2.718281828459045

// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;

System.out.printf("Area: %.2f%n", area);           // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98

Math.floorDiv og Math.floorMod

Math.floorDiv() og Math.floorMod() håndterer negative tal konsekvent — i modsætning til operatorerne / og %, som kan give overraskende resultater med negative tal.

// Regular % can be negative with negative dividend
System.out.println(-7 % 3);           // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2  (always non-negative)

// Floor division rounds toward negative infinity
System.out.println(-7 / 3);              // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)

// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6

Praktisk eksempel: Afstand og fysik

Anvendelse af Math-metoder på et fysikproblem: Beregn en projektilbanes rækkevidde ved hjælp af trigonometri og kvadratrødder.

// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0;   // m/s
double angleDeg = 45.0;   // degrees
double g = 9.81;          // m/s^2

double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;

System.out.printf("Projectile range: %.1f m%n", range); // 254.8 m

Hurtigt tjek

Hvad er resultatet af Math.floorMod(-7, 3)?

Opsamling: Math-klassen

Vigtigste pointer:

  • Math.abs, Math.min og Math.max til grundlæggende sammenligninger
  • Math.pow, Math.sqrt og Math.cbrt til potenser og rødder
  • Math.floor, Math.ceil og Math.round til afrunding
  • Math.log, Math.log10 og Math.exp til logaritmer og eksponentialfunktioner
  • Math.sin, Math.cos og Math.tan bruger radianer — konvertér med Math.toRadians
  • Math.floorMod håndterer negative tal på en enkel måde ved cyklisk aritmetik
  • Math.PI og Math.E er indbyggede konstanter
Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
104
Lektioner
374

Ofte stillede spørgsmål

Er lektionen “Det grundlæggende om Math-klassen” gratis?

Ja — hele teksten til “Det grundlæggende om Math-klassen” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Java Academy-kurset, skal du opgradere til CoddyKit PRO. Java Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Det grundlæggende om Math-klassen”?

Brug Math.abs, Math.pow, Math.sqrt, Math.random og andre hyppigt anvendte Math-metoder. Du øver dig i Java Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Java Academy?

Der kræves ingen tidligere erfaring. Java Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Det grundlæggende om Math-klassen”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Java Academy-lektion?

Ja. Alle Java Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Det grundlæggende om Math-klassen
  2. Heltalsaritmetik og overflow
  3. BigDecimal til økonomiske beregninger
  4. NumberFormat og printf
← Tilbage til Java Academy