Visual Basic for Applications:
Lukujen pyöristäminen
Kuinka tehdä:
Visual Basic for Applications (VBA) -ohjelmoinnissa pyöristäminen voidaan saavuttaa käyttämällä useita funktioita, joista jokainen sopii tiettyihin tilanteisiin. Tässä ovat yleisimmin käytetyt funktiot esimerkein:
Round-funktio:
Round
-funktio pyöristää numeron määriteltyyn numeroiden määrään.Dim roundedNumber As Double roundedNumber = Round(3.14159, 2) ' Tuloste: 3.14 MsgBox roundedNumber
Int- ja Fix-funktiot: Sekä
Int
- ettäFix
-funktiot käytetään numeroiden pyöristämiseen alaspäin lähimpään kokonaislukuun, mutta ne käyttäytyvät eri tavalla negatiivisten numeroiden kanssa.Dim intRounded As Integer Dim fixRounded As Integer intRounded = Int(-3.14159) ' Tuloste: -4 fixRounded = Fix(-3.14159) ' Tuloste: -3 MsgBox "Int: " & intRounded & ", Fix: " & fixRounded
Ceiling- ja Floor-funktiot: VBA:ssa ei ole oletuksena
Ceiling
- jaFloor
-funktioita, jotka löytyvät muista kielistä. Tämän simulointiin voi käyttääApplication.WorksheetFunction.Ceiling_Math
- jaApplication.WorksheetFunction.Floor_Math
-funktioita Excel VBA:ssa.Dim ceilingNumber As Double Dim floorNumber As Double ceilingNumber = Application.WorksheetFunction.Ceiling_Math(3.14159) ' Tuloste: 4 floorNumber = Application.WorksheetFunction.Floor_Math(3.14159) ' Tuloste: 3 MsgBox "Ceiling: " & ceilingNumber & ", Floor: " & floorNumber
Syväsukellus
VBA:n Round
-funktio eroaa muiden kielten pyöristysmenetelmistä sen käyttämän Banker’s Rounding -pyöristystavan vuoksi. Bankerin pyöristys pyöristää lähimpään parilliseen numeroon silloin, kun ollaan täsmälleen kahden numeron välissä, mikä vähentää harhautumista laskelmissa suuren tietoaineiston yli ja tarjoaa tilastollisesti merkittävämmän tuloksen. Tämä voi kuitenkin johtaa odottamattomaan käytökseen niille, jotka eivät ole tottuneet siihen, erityisesti kun jokaisessa tapauksessa odotetaan tarkan tarkkuuden saavuttamista.
Toisin kuin monet ohjelmointikielet ja -järjestelmät, jotka käyttävät “aritmeettista pyöristystä” tai “half-up pyöristystä”, jossa numero, joka on täsmälleen kahden mahdollisen pyöristetyn arvon välissä, pyöristetään aina ylöspäin. Koodia kääntäessä tai siirtäessä muista kielistä VBA:han, ohjelmoijien on pidettävä mielessä nämä erot välttääkseen hienovaraisia virheitä tai epätarkkuuksia taloudellisissa ja tilastollisissa sovelluksissa.
Vaikka VBA tarjoaa useita toimintoja pyöristykseen, Ceiling
- ja Floor
-funktioiden puuttuminen (ilman, että turvaudutaan Excelin WorksheetFunctioniin) korostaa sen natiivien kykyjen rajoitusta. Ohjelmoijat, jotka tulevat ominaisuuksiltaan rikkaammista kielistä, saattavat pitää näitä puutteita epäkäytännöllisinä ja saattavat joutua toteuttamaan mukautettuja ratkaisuja tai sopeuttamaan laskelmansa käyttämään saatavilla olevia toimintoja. Huolimatta näistä rajoituksista, VBA:n pyöristysfunktioiden oikeaoppinen ymmärtäminen ja käyttö voi auttaa varmistamaan, että numeeriset laskelmat ovat sekä tarkkoja että täyttävät useimpien sovellusten vaatimukset.