VBA.VB6 – Afronding functies

VBA.VB6 - Afronding functiesDe wiskundige functie "round ()" is een bepaald aantal draaien in aantal minder nauwkeurig. Het meest voorkomende geval is de omzetting van een decimaal getal. De IEEE 754-2008 standaard standaardiseert de formaten en de berekeningswijze van binaire en decimale getallen uitgedrukt in floating point, in microprocessors en hun omgeving. Definieert vijf afronding gebruiker te selecteren methoden. Deze norm is ook een gids voor taal ontwerpers om hun draagbaarheid te garanderen, maar het is niet nodig, vandaar de variabiliteit van de resultaten van de functie Round () als talen.


Hier zijn een tiental wiskundige methoden om een ​​aantal ronden:VBA.VB6 - Afronding functies

Ook aangeduid afgerond symmetrisch of asymmetrisch (betrokken op nul).

Andere namen worden vaak gebruikt voor de volgende ronde, maar de meeste zijn vaag of dubbelzinnig en daarom zijn ze onderworpen aan verschillende interpretaties.

Voorbeelden

VBA.VB6 - Afronding functies

Het afgeronde door

De afronding is zo dicht als intuïtief te afronding. Bijvoorbeeld de waarden 3.1, 3.2, 3.3 en 3.4 worden afgerond naar 3, terwijl de waarden 3,6, 3,7, 3,8 en 3,9 zijn afgerond, maar beide keuzes zijn 3,5 eventuele (3 of 4).

De verschillende methoden afronding naar het dichtstbijzijnde onderscheiden overigens selecteert de mediaanwaarde zich precies tussen het bovenste en het aantal afgeronde getal afgeronde bodem.

Afronden naar het dichtstbijzijnde even (of bankier afronding)

Deze methode " round banden te Zelfs"Is de modebeneden afgerond op de IEEE 754-2008. Zij moet worden gebruikt voor getallen in binaire indeling. Met deze methode van afronding op de weilanden zelfs, wordt de mediaanwaarde afgerond op het even getal.

Bijvoorbeeld: 2,5 tot 3,5 en 2-4.

Dit symmetrische afronding vermindert de cumulatieve voorspanning die kunnen voortvloeien uit een afgeronde steeds in dezelfde richting (zie afgerond richting positief oneindig, naar negatief oneindig, naar nul, rekenkunde), maar een voorspanning voorkomt gebruik alleen even of oneven nummers nummers.

functie

Dit is de functie Round ()VB en C #, en de resultaten lijkt misschien niet verwonderlijk niet afkomstig zijn van een bug.

rekenkundige afronding

De rekenkundige afronding [symmetrisch] " round banden weg te"is aanbevolen door de IEEE Standard 754-2008 voor getallen in decimale notatie.

Deze methode is de meest bekende, is dat we geleerd hebben in wiskunde klas, de spreadsheet (Excel, Calc, ...). Dit is een afronding methodes dichter bij waar de mediaanwaarde altijd wordt afgerond.

Bijvoorbeeld: 3,5 tot 4 en -3,5 tot -4.

Deze werkwijze kan een cumulatieve vertekening maar beperkt de opeenstapeling van fouten gedurende opeenvolgende berekeningen.

functie:

Overheidsfunctie ArrondiArithmetique (ByVal Number, Facultatieve ByVal Decimal = 0)'Functie rekenkundig afronden [symmetrisch]: hoe dichter bij 0,5 het oneindigeArrondiArithmetique = Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) / 10 ^ decimaalend Function

Afgeronde richting positief oneindig

Deze werkwijze komt overeen met " Round Toward Positieve "Bepaald door de IEEE 754-2008 standaard.

Het is een asymmetrische afgerond. Bij een positief getal, het resultaat blijft onveranderd als de nummers te elimineren alle nul; Als het laatste cijfer wordt naar boven afgerond. Bij een negatief getal zijn de cijfers eenvoudig verwijderen verwijderd.

Bijvoorbeeld: 3,1-4 en -3,9 tot -3.

Deze methode resulteert in een positief cumulatief vooringenomenheid en nog veel meer, het is zelden gebruikt in hardware implementaties, omdat de realisatie ervan is duurder.

functie:

Overheidsfunctie ArrondiVersPlusInfini (ByVal Number, Facultatieve ByVal Decimal = 0)Afronding functie + oneindigArrondiVersPlusInfini = (Int (Aantal * 10 ^ decimaal) _+ IIf (Number = Int (decimaal nummer * 10 ^), 0, 1)) / 10 ^ decimaalend Function

Rond de richting van negatief oneindig

Deze werkwijze komt overeen met " Round Toward negatief "Bepaald door de IEEE 754-2008 standaard.

Het is een asymmetrische afgerond. Bij een positief getal, de cijfers elimineren gewoon verwijderd. Bij een negatief getal, het resultaat blijft onveranderd als de nummers te elimineren alle nul; Als het laatste cijfer wordt naar boven afgerond.

Bijvoorbeeld: 3,9-3 en -3,1 tot -4.

Deze methode is eenvoudig wezenlijk voeren, hetgeen de totale negatieve voorspanning.

functie:

Overheidsfunctie ArrondiVersMoinsInfini (ByVal Number, Facultatieve ByVal Decimal = 0)'Afronding functie om - oneindigArrondiVersMoinsInfini = Int (Aantal * 10 ^ decimaal) / 10 ^ decimaalend Function

Afgerond naar nul

Deze methode " Round naar nul "Bepaald door de IEEE 754-2008 standaard ook bekend inkorting : Opdeling eenvoudig verwijderd te elimineren, is een symmetrisch afgerond.

Bijvoorbeeld 3,9-3 en -3,9 tot -3.

Deze werkwijze komt overeen met de AFRONDEN.NAAR.BENEDEN functie () spreadsheet (Excel, Calc, ...).

functie:

Overheidsfunctie ArrondiVersZero (ByVal Number, Facultatieve ByVal Decimal = 0)Afrondingsfunctie op nul; het laagste cijfer (afknotting)ArrondiVersZero = Fix (nummer * 10 ^ decimaal) / 10 ^ decimaalend Function

asymmetrische rekenkundige afronding

Dit is een van de methodenafgerond op de dichtstbijzijnde waarbij de mediaanwaarde wordt steeds afgerond richting positief oneindig. Het komt overeen met de functie rondje de Math bibliotheek Java.

Bijvoorbeeld 3,5 tot 4 en -3,5 tot -3.

Deze werkwijze leidt tot een cumulatieve positieve bias.

functie:

Overheidsfunctie ArrondiArithmetiqueAsymetrique (ByVal Number, Facultatieve ByVal Decimal = 0)'Functie asymmetrische rekenkundige afronding: hoe dichter, 0,5 tot + oneindigArrondiArithmetiqueAsymetrique = Int (decimaal nummer * 10 ^ + 1/2) / 10 ^ decimaalend Function

Afronden naar het dichtstbijzijnde naar negatief oneindig

Dit is een van de methodenafgerond op de dichtstbijzijnde asymmetrisch, waarvoor de mediaanwaarde wordt steeds afgerond naar de min oneindig.

Bijvoorbeeld: 3,5-3 en -3,5 tot -4.

Deze werkwijze leidt tot een cumulatieve negatieve voorspanning.

functie:

Overheidsfunctie ArrondiPlusPresVersMoinsInfini (ByVal Number, Facultatieve ByVal Decimal = 0)'Afrondingsfunctie zo dicht mogelijk bij de bodem: zo dicht, 0,5 - oneindigArrondiPlusPresVersMoinsInfini = (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) _- IIf (nr * 10 ^ decimaal - Fix (nr * 10 ^ decimaal) = 1/2, Sgn (Number), 0)) _/ 10 ^ decimaalend Function

Afgerond tot nul

Dit is een van de methodenafgerond op de dichtstbijzijnde symmetrische waaraan de mediaanwaarde wordt steeds afgerond naar nul

Bijvoorbeeld 3,5-3 en -3,5 tot -3).

Deze werkwijze wordt soms "rounded Gaussian" omdat het een symmetrische verdeling ten opzichte van zijn gemiddelde waarde.

functie:

Overheidsfunctie ArrondiPlusPresVersZero (ByVal Number, Facultatieve ByVal Decimal = 0)'Afrondingsfunctie zo dicht mogelijk bij nul: even ver 0,5 tot nulArrondiPlusPresVersZero = (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) _- IIF (Nummer * 10 ^ Decimaal - Fix (Number * 10 ^ decimaal) = _Sgn (Number) * 1/2, sgn (Number), 0)) / 10 ^ decimaalend Function

Afgerond op vreemde

Dit is een van de methodenafgerond op de dichtstbijzijnde zeer zelden gebruikt symmetrische, waarbij de mediaanwaarde wordt altijd afgerond op het oneven nummer.

Bijvoorbeeld: 3,5-3 en 4,5-5

De voordelen zijn in theorie gelijk aan die van de afronding op de wei elkaar, maar afronding op de dichtstbijzijnde oneven het nadeel van niet afgerond op nul.

functie:

Overheidsfunctie ArrondiPlusPresImpair (ByVal Number, Facultatieve ByVal Decimal = 0)'Afrondingsfunctie de dichter oneven: hoe dichter bij de oneven 0,5ArrondiPlusPresImpair = (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) _- IIF (Nummer * 10 ^ Decimaal - Int (Number * 10 ^ decimaal) <> 1/2, 0, _IIf (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) / 2 = _Int (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) / 2), Sgn (Number), 0))) _/ 10 ^ decimaalend Function

Afgerond naar het oneindige

Dit is een symmetrische afrondingsmethode. Het resultaat blijft ongewijzigd als de nummers te elimineren alle nul; Als het laatste cijfer wordt naar boven afgerond.

Bijvoorbeeld: 3,1-4 en -3,1 tot -4.

Deze werkwijze komt overeen met de functie ROUNDUP () spreadsheet (Excel, Calc, ...)

functie:

Overheidsfunctie ArrondiVersInfinis (ByVal Number, Facultatieve ByVal Decimal = 0)'Afrondingsfunctie aan oneindig: hoe hoger cijferArrondiVersInfinis = (Fix (nummer * 10 ^ decimaal) _+ IIf (Number = Fix (decimaal nummer * 10 ^), 0, Sgn (Number))) / 10 ^ decimaalend Function

stochastische afronding

Dit is een van de methodenafgerond op de dichtstbijzijnde, gebruikt in statistieken waarvan de mediaanwaarde willekeurig of pseudo-willekeurig afgerond om positieve of negatieve oneindig oneindig.

Bijvoorbeeld: 3,5 willekeurig afgerond op 3 of 4

De stochastische ronding vermindert de cumulatieve voorspanning die kunnen voortvloeien uit afronding andere methoden, maar de willekeur maakt het bijna onmogelijk replicatie van resultaten.

functie:

Overheidsfunctie ArrondiStochastique (ByVal Number, Facultatieve ByVal Decimal = 0)'Voor het aanroepen van de functie uit te voeren Randomize in de aanroepende code.'Functie stochastische afronding: dichter, 0,5 willekeurige omhoog of omlaagArrondiStochastique = (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) _- IIF (Nummer * 10 ^ Decimaal - Int (Number * 10 ^ decimaal) <> 1/2, 0, _Int (Rnd * 2) * Sgn (nummer))) / 10 ^ decimaalend Function

alternatieve afronding

Dit is een van de methodenafgerond op de dichtstbijzijnde, gebruikt in statistieken waarvan de mediaanwaarde afwisselend wordt afgerond naar positief oneindig vervolgens naar negatief oneindig (of vice versa).

Bijvoorbeeld: 3,5-4 en 2-2,5 of 2,5-3 en 3,5-3

De afwisselende ronding vermindert de cumulatieve voorspanning die voortkomen uit andere afronding methoden, in tegenstelling tot de stochastische afronding, replicatie van resultaten vaak mogelijk.

functie:

Overheidsfunctie ArrondiAlterne (ByVal Number, Facultatieve ByVal Decimal = 0)Static flgDown zoals Van Boole'Alternate Afronding: dichter, 0,5 afgewisseld omhoog en omlaagAls Getal * 10 ^ Decimaal - Int (Number * 10 ^ decimaal) = 1/2 DanArrondiAlterne = IIf (flgDown Xor Sgn (getal) = -1, Sgn (Number), 0)flgDown = Niet flgDownEnd IfArrondiAlterne = (Fix (nr * 10 ^ decimale + Sgn (Number) * 1/2) - ArrondiAlterne) _/ 10 ^ decimaalend Function

bijna volledige tekst van Patrice33470

Sleutelwoorden: afgeronde Round Round () VB bug
VBA.VB6 - Afronding functiesDownload dit artikel (PDF)
Originele artikel gepubliceerd door. Vertaald door lermite222. Dit document met als titel " VBA.VB6 - Afronding functies "uitKioskea (Www.commentcamarche.net)wordt onder de Creative Commons-licentie beschikbaar gesteld.U kunt kopiëren, wijzigen kopieën van deze pagina, onder de voorwaarden die de vergunning gestelde voorwaarden,als deze nota blijkt duidelijk.Download dit artikel (PDF