Visual Basic for Applications:
Avrunding av tall
Hvordan:
I Visual Basic for Applications (VBA), kan avrunding oppnås ved bruk av flere funksjoner, hver egnet for spesifikke scenarioer. Her er de mest brukte funksjonene med eksempler:
Round-funksjonen:
Round
-funksjonen runder av et tall til et spesifisert antall sifre.Dim roundedNumber As Double roundedNumber = Round(3.14159, 2) ' Utdata: 3.14 MsgBox roundedNumber
Int- og Fix-funksjonene: Både
Int
- ogFix
-funksjonene brukes til å runde ned tall til nærmeste heltall, men de oppfører seg forskjellig med negative tall.Dim intRounded As Integer Dim fixRounded As Integer intRounded = Int(-3.14159) ' Utdata: -4 fixRounded = Fix(-3.14159) ' Utdata: -3 MsgBox "Int: " & intRounded & ", Fix: " & fixRounded
Ceiling- og Floor-funksjonene: VBA mangler innebygde
Ceiling
- ogFloor
-funksjoner som finnes i andre språk. For å simulere dette, brukApplication.WorksheetFunction.Ceiling_Math
ogApplication.WorksheetFunction.Floor_Math
for Excel VBA.Dim ceilingNumber As Double Dim floorNumber As Double ceilingNumber = Application.WorksheetFunction.Ceiling_Math(3.14159) ' Utdata: 4 floorNumber = Application.WorksheetFunction.Floor_Math(3.14159) ' Utdata: 3 MsgBox "Ceiling: " & ceilingNumber & ", Floor: " & floorNumber
Dybdestudie
Round
-funksjonen i VBA er vesentlig forskjellig fra avrundingsmetoder i andre språk på grunn av dens bruk av Bankers avrunding. Bankers avrunding runder til det nærmeste jevne tallet når man er nøyaktig midt mellom to tall, noe som reduserer skjevhet i beregninger over et stort datasett og gir et mer statistisk signifikant resultat. Dette kan imidlertid føre til uventet oppførsel for de som er ukjente med det, spesielt når presis nøyaktighet er forventet i alle tilfeller.
I motsetning bruker mange programmeringsspråk og systemer “aritmetisk avrunding” eller “halvopp-avrunding,” der et tall nøyaktig midt mellom to mulige avrundede verdier alltid avrundes opp. Når man oversetter eller overfører kode fra andre språk til VBA, må programmerere ha disse forskjellene i tankene for å unngå subtile feil eller unøyaktigheter i finansielle og statistiske applikasjoner.
Selv om VBA tilbyr en rekke funksjoner for avrunding, fremhever fraværet av Ceiling
- og Floor
-funksjoner (uten å ty til Excels WorksheetFunction) en begrensning i dens medfødte kapasiteter. Programmerere som kommer fra mer funksjonsrike språk kan finne disse utelatelsene upraktiske og kan trenge å implementere egendefinerte løsninger eller tilpasse beregningene sine for å bruke tilgjengelige funksjoner. Til tross for disse begrensningene, kan forståelse og bruk av VBAs avrundingsfunksjoner korrekt bidra til å sikre at numeriske beregninger er både nøyaktige og oppfyller kravene til de fleste applikasjoner.