Visual Basic/De klasse Math
De klasse Math en diverse rekenfuncties
[bewerken]Methoden en eigenschappen van de klasse Math
[bewerken]De klasse Math bevat diverse methoden voor rekenkundige functies. De belangrijkste zijn:
Methode | Betekenis | Type argument | Type resultaat |
---|---|---|---|
Abs() | de absolute waarde van een getal | Decimal, Double, Integer, Long, SByte, Short of Single | hetzelfde als het argument |
Acos() | arccosinus | Double | Double |
Asin() | Arcsinus | Double | Double |
Atan() | arctangens | Double | Double |
Ceiling() | het kleinste gehele getal dat groter of gelijk is aan argument | Decimal of Double | hetzelfde als het argument |
Cos() | cosinus | Double | Double |
Exp() | e tot de macht argument | Double | Double |
Floor() | het grootste gehele getal dat kleiner of gelijk is aan argument | Decimal of Double | Hetzelfde als het argument |
Log() | logaritme van argument | Double | Double |
Log10() | 10-delig logaritme van argument | Double | Double |
Max() | grootste van twee getallen | Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, UShort | hetzelfde als het argument |
Min() | kleinste van twee getallen | Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, UShort | hetzelfde als het argument |
Pow() | x tot de macht y | x als Double, y als Double | Double |
Round() | rind argument af op een opgegeven aantal decimalen | Decimal, Double | hetzelfde als het argument |
Sign() | het teken van een getal | Decimal, Double, Integer, Long, Short, SByte, Single | Integer (-1 is negatief, 0 is 0, 1 is positief) |
Sin() | sinus | Double | Double |
Sqrt() | vierkantswortel | Double | Double |
Tan() | tangens | Double | Double |
Truncate() | kapt argument af bij de komma | Decimal, Double | hetzelfde als het argument |
Ook kent de klasse Math twee eigenschappen:
- Math.E een Double met als waarde het natuurlijk logaritme
- Math.PI een Double met als waarde pi
De functie Math.Round()
[bewerken]Het formaat van de aanroep van Math.Round() is:
Math.Round(expressie [ , aantalDecimalePlaatsen [ , MidpointRounding ] ] )
De functie Math.Round() behoeft nadere toelichting.
Het eenvoudigst in de functieaanroep met één argument:
getal = Math.Round(waarde)
Het getal in waarde wordt afgerond op een geheel getal en opgeslagen in getal.
Je kunt ook het aantal posities aangeven door een tweede argument op te geven, dat een Integer moet zijn:
getal = Math.Round(waarde, 3)
Het getal in waarde wordt afgerond op drie cijfers na de komma en opgeslagen in getal.
LET OP: Microsoft gebruikt voor het afronden het bankiersalgoritme. Dat betekent dat alles op een normale manier wordt afgerond, behalve als het argument precies 0,5 is. In dat geval wordt afgerond naar het meest nabij liggende EVEN getal. Dus 2,5 wordt 2 en 3,5 wordt 4.
De wijze van afronden kun je beïnvloeden door een derde parameter, die ofwel MidpointRounding.ToEven is (het bankiersaloritme) ofwel MidpointRounding.AwayFromZero (de normale manier van afronden). Ter verduidelijking de volgende voorbeelden:
Uitdrukking | Resultaat |
---|---|
Math.Round(123.455, 2, MidpointRounding.ToEven) | 123.46 |
Math.Round(123.445, 2, MidpointRounding.ToEven) | 123.44 |
Math.Round(123.455, 2, MidpointRouding.AwayFromZero) | 123.46 |
Math.Round(123.445, 2, MidpointRouding.AwayFromZero) | 123.45 |
Zoals je ziet wordt op de tweede manier de 5 naar boven afgerond, zoals we dat op school geleerd hebben (bij de bank doen ze anders).
De functies Int() en Fix()
[bewerken]Deze functies zijn beide bedoeld om getallen af te ronden. Beide functies werken hetzelfde bij positieve getallen. Bij negatieve getallen rondt Int() af naar het getal dat dichter bij nul ligt en Fix() rondt af naar het getal dat verder van nul ligt. Voorbeelden:
Uirdrukking | Resultaat |
---|---|
Int(4.9) | 4.5 |
Int(4) | 4 |
Int(-4.9) | -4 |
Fix(4.9) | 4 |
Fix(4) | 4 |
Fix(-4.9) | -5 |
Het type van het argument en het resultaat zijn hetzelfde en kunnen zijn: Double, Integer, Long, Object, Short, Single of Decimal. Dit betekent dat als je het resultaat wilt toekennen aan een Integer, je expliciet moet converteren, bijvoorbeeld:
Dim getal As Integer getal = CInt(Int(4.5))