Naast de gewone operatoren (+, -, *, /, %) heb je soms nood aan extra
hulpmiddelen. Denk maar aan een vierkantswortel of aan goniometrische
functies zoals sinus en cosinus. Daarvoor bestaan in C# kant-en-klare
functies.
Een functie levert steeds één waarde op. Die waarde moet je opvangen, meestal in een variabele, anders gaat het resultaat verloren.
double num1, num2, max;
// Vraag de gebruiker om twee getallen
Console.Write("Voer het eerste getal in: ");
num1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Voer het tweede getal in: ");
num2 = Convert.ToDouble(Console.ReadLine());
// Gebruik Math.Max om het grootste getal te bepalen
max = Math.Max(num1, num2);
// Toon het resultaat
Console.WriteLine("Het grootste getal van " + num1 + " en " + num2 + " is: " + max);
Het resultaat van Math.Max(num1, num2) wordt hier in de variabele max
bewaard. Pas daarna kan je het tonen of er verder mee rekenen.
MathDe functies voor getallen vind je in de klasse Math. Wat een klasse precies
is, leer je later. Bekijk het voorlopig gewoon als de manier om aan deze
functies te geraken: je schrijft Math. gevolgd door de naam van de functie.
In de tabel hieronder vind je een overzicht van een aantal beschikbare functies.
| Functie | Betekenis |
|---|---|
Math.Abs( ) | Bepaal de absolute waarde (zonder teken) |
Math.Sqrt( ) | Vierkantswortel (Square Root) |
Math.Pow( ) | Machtsverheffing |
Math.Round( ) | Afronden van het resultaat |
Math.Min( ), Math.Max( ) | Kleinste en grootste van 2 getallen bepalen |
Math.Sin( ), Math.Cos( ), Math.Tan( ), Math.Atan( ) | Enkele van de meest gebruikte goniometrische functies (hoek in radialen) |
Math.Log( ), Math.Exp( ) | Logaritmische functies |
Math.Sign( ) | Bepaalt welk teken het getal heeft |
| Constante | Betekenis |
Math.PI | 3.14159265358979, de waarde van het getal π |
Met uitzondering van Math.PI heeft elk van deze functies haakjes. PI is
namelijk een constante, geen functie. Tussen de haakjes plaats je de waarden
of variabelen waarop de bewerking moet gebeuren. Bij sommige functies volstaat
één waarde, andere hebben er meerdere nodig.
| Functie met parameters | Resultaat |
|---|---|
Math.Abs(-123.45) | 123.45 |
Math.Sin(Math.PI / 2) | 1 (merk op dat de hoek in radialen wordt gegeven) |
Math.Sqrt(2) | 1.4142135623731 |
Math.Max(-50, -25) | -25 |
Math.Pow(2, 10) | 1024 (2 tot de macht 10) |
De goniometrische functies werken met de hoek in radialen, niet in graden. Een rechte hoek van 90° is \(\frac{\pi}{2}\) radialen, dus
Math.Sin(Math.PI / 2)geeft1.
Math.RoundDe functie Math.Round( ) heeft wat extra uitleg nodig. Je kan ze met 2 of 3
parameters gebruiken.
Met twee parameters geef je de waarde en het aantal cijfers na de komma:
Math.Round(123.45, 1); // 123.4
In dat geval gebruikt C# standaard de afrondingsmodus
MidpointRounding.ToEven: bij een getal dat precies tussen twee waarden valt,
rondt het af naar het dichtstbijzijnde even cijfer. Dat is de Amerikaanse
manier van afronden.
Wil je afronden zoals we dat in België gewoon zijn (een 5 rondt altijd naar
boven af), dan geef je MidpointRounding.AwayFromZero mee als derde
parameter:
| Afronding | Resultaat |
|---|---|
Math.Round(123.45, 1, MidpointRounding.ToEven) | 123.4 |
Math.Round(123.45, 1, MidpointRounding.AwayFromZero) | 123.5 |
Wil je een getal afronden op
ncijfers (de afronding zelf is het doel), gebruik danMath.RoundmetMidpointRounding.AwayFromZero, zodat een5naar boven afrondt zoals je het gewoon bent, bijvoorbeeldMath.Round(prijs, 2, MidpointRounding.AwayFromZero). Wil je een getal enkel netjes tonen met een vast aantal cijfers na de komma (bijvoorbeeld12.50), dan gebruik je formattering metFn, bijvoorbeeld$"{prijs:F2}".