Με την προσαρμοσμένη εφαρμογή στρογγυλοποίησης διαδικασίες

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:196652
Αυτό το αρχείο έχει αρχειοθετηθεί. Προσφέρεται “ως έχει” και δεν θα ενημερώνεται πια.
Περίληψη
Είναι διαθέσιμες στο Microsoft έναν αριθμό διαφορετικών αλγορίθμων στρογγυλοποίησηςτα προϊόντα. Στρογγυλοποίηση αλγόριθμοι κυμαίνονται από αριθμητικούς στρογγυλοποίηση σε του ExcelΣυνάρτηση φύλλου εργασίας Round() Banker στρογγυλοποίηση σε CInt(), CLng(), καιROUND() συναρτήσεις της Visual Basic για εφαρμογές. Αυτό το άρθρο περιγράφειΤι κάνει διάφορες Visual Basic για εφαρμογές στρογγυλοποίησης συναρτήσεις καιπαρέχει δείγματα χρησιμοποιώντας τις συναρτήσεις. Επιπλέον, το άρθρο περιλαμβάνεισυναρτήσεις δείγμα που εφαρμόζουν διάφορους αλγόριθμους στρογγυλοποίησης.
Περισσότερες πληροφορίες

Στρογγυλοποίηση εξηγείται

Πρέπει να στρογγυλοποιηθεί όταν θέλετε να μετατρέψετε έναν αριθμό μεγαλύτερη ακρίβειασε αριθμό μικρότερη ακρίβεια. Η πιο συνηθισμένη περίπτωση είναι όταν χρειάζεται ναΓια να μετατρέψετε έναν αριθμό κινητής υποδιαστολής σε ακέραιο.

Στρογγυλοποίηση προς τα κάτω

Η απλούστερη μορφή στρογγυλοποίηση είναι περικοπής. Τα ψηφία μετά το επιθυμητόακρίβεια απλώς παραβλέπονται. Η συνάρτηση VBA Fix() είναι ένα παράδειγμαπερικοπή. Για παράδειγμα, Fix(3.5) είναι 3 και Fix(-3.5) είναι -3.

Η συνάρτηση Int() στρογγυλοποιεί προς τα κάτω το υψηλότερο ακέραιος μικρότερος από την τιμή.Int() και Fix() ενεργούν με τον ίδιο τρόπο με θετικούς αριθμούς - περικοπή-αλλά δίνουν διαφορετικά αποτελέσματα για τους αρνητικούς αριθμούς: Int(-3.5) δίνει -4.

Η συνάρτηση Fix() είναι ένα παράδειγμα συμμετρικό στρογγυλοποίηση, επειδή επηρεάζειμέγεθος (απόλυτη τιμή) των θετικών και αρνητικών αριθμών στο ίδιοτρόπο. Συνάρτηση Int() είναι ένα παράδειγμα ασύμμετρο στρογγυλοποίηση, επειδή τοεπηρεάζει το μέγεθος των θετικών και αρνητικών αριθμών με διαφορετικό τρόπο.

Το Excel έχει συναρτήσεις υπολογιστικού φύλλου παρόμοια: Int(), Floor() και RoundDown().Int() λειτουργεί με τον ίδιο τρόπο όπως Int() στη Visual Basic για εφαρμογές.FLOOR() περικόπτει θετικές τιμές, αλλά δεν λειτουργεί με αρνητικούς αριθμούς.Η συνάρτηση RoundDown() λειτουργεί όπως η συνάρτηση VBA Fix().

Microsoft SQL Server έχει μια συνάρτηση Round() που μπορούν να χρησιμοποιηθούν ως VBA Fix()η συνάρτηση. Επίσης, SQL Server έχει μια συνάρτηση Floor(), η οποία λειτουργεί με τον ίδιο τρόποως συνάρτηση της VBA Int().

Στρογγυλοποίηση προς τα επάνω

SQL Server και το Excel έχουν μια συνάρτηση που ονομάζεται Ceiling(), που πάνταΣτρογγυλοποιεί κλάσμα τιμές προς τα επάνω (περισσότερες θετικό) την επόμενη τιμή.

Visual Basic for Applications δεν έχει αντίστοιχη round-upη συνάρτηση. Ωστόσο, για τους αρνητικούς αριθμούς, Fix() και Int() μπορεί να χρησιμοποιηθείΓια να στρογγυλοποιήσετε προς τα επάνω, με διαφορετικούς τρόπους.

Fix() στρογγυλοποιεί προς 0 (επάνω με απόλυτη έννοια, αλλά κάτω από την άποψη τηςαπόλυτη μεγέθους). Fix(-3.5) είναι-3.5.

Στρογγυλοποιεί προς τα INT() μακριά από το 0 (επάνω από άποψη μεγέθους απόλυτη, αλλά προς τα κάτω στοη απόλυτη έννοια). Int(-3.5) είναι -4.

Αριθμητικός στρογγυλοποίησης

Κατά τη στρογγυλοποίηση πάντα προς τα κάτω ή προς τα επάνω, ο αριθμός που προκύπτει δεν είναι απαραίτηταβρίσκεται πλησιέστερα προς τον αρχικό αριθμό. Για παράδειγμα, εάν η στρογγυλοποίηση 1.9 προς τα κάτω1, η διαφορά είναι πολύ μεγαλύτερο από το αν το στρογγυλοποιήσει έως και 2. Είναι εύκολοΓια να δείτε αριθμοί που από 1.6 2.4, θα πρέπει να στρογγυλοποιηθεί σε 2.

Ωστόσο, τι συμβαίνει με 1.5, το οποίο είναι τεμαχίου μεταξύ 1 και 2; Απόσύμβασης, ο αριθμός μισή στρογγυλοποιείται προς τα επάνω.

Μπορείτε να υλοποιήσετε μισή αριθμοί με συμμετρικό τρόπο στρογγυλοποίησης αυτών-0,5 που στρογγυλοποιείται προς τα κάτω-1 ή με μια ασύμμετρη τρόπο, όπου είναι -0,5στρογγυλοποιείται στο 0.

Οι παρακάτω συναρτήσεις παρέχουν συμμετρικό αριθμητικούς Στρογγυλοποίησης:
Συνάρτηση υπολογιστικού φύλλου Excel Round().
Η συνάρτηση SQL Server Round() μπορεί να γίνει συμμετρικό αριθμητικούς στρογγυλοποίησης.

Η παρακάτω συνάρτηση παρέχουν ασύμμετρη αριθμητικούς Στρογγυλοποίησης:
Η μέθοδος Round() η βιβλιοθήκη μαθηματικών Java.

Visual Basic for Applications δεν έχει οποιαδήποτε λειτουργία πουαριθμητικός στρογγυλοποίησης.

Στρογγυλοποίηση του Banker

Όταν προσθέτετε στρογγυλοποιούνται τιμές μαζί, πάντα.5 στο ίδιο στρογγυλοποίησηςΠροσθήκη κατεύθυνση αποτελέσματα σε μια πόλωση που μεγαλώνει με περισσότερους αριθμούςμαζί. Είναι ένας τρόπος για να ελαχιστοποιήσετε την bias με στρογγυλοποίηση του banker.

Στρογγυλοποιεί στρογγυλοποίησης του Banker.5 μερικές φορές επάνω και κάτω μερικές φορές. Η σύμβασηείναι να στρογγυλοποιήσει στον πλησιέστερο ζυγό αριθμό, ώστε να στρογγυλοποιήσει 1.5 και 2.52, και 3.5 και 4.5 δύο στρογγυλά 4. Στρογγυλοποίηση του Banker είναι συμμετρικά.

Στη Visual Basic για εφαρμογές, εκτελέστε τις ακόλουθες συναρτήσεις αριθμητικήBanker Στρογγυλοποίησης: CByte(), CInt(), CLng(), CCur() και Round().

Υπάρχουν δεν συναρτήσεις υπολογιστικού φύλλου του Excel που εκτελούν του banker στρογγυλοποίησης.

Τυχαία στρογγυλοποίησης

Στρογγυλοποίηση ακόμη banker να μετατοπίζουν συνόλων. Μπορείτε να κάνετε ένα επιπλέον βήμα για τηνκαταργήσετε bias, στρογγυλοποίηση.5 επάνω ή κάτω σε πραγματικά τυχαίο τρόπο. Με αυτόν τον τρόπο,ακόμη και αν τα δεδομένα σκόπιμα με έμφαση, μπορεί να ελαχιστοποιηθεί bias. Ωστόσο,χρήση τυχαία στρογγυλοποίησης με τυχαία κατανεμημένα δεδομένα ενδέχεται να οδηγήσει σε μιαμεγαλύτερο bias από banker στρογγυλοποίησης. Τυχαία στρογγυλοποίηση θα μπορούσε να οδηγήσει σε δύοδιαφορετικά σύνολα στα ίδια δεδομένα.

Προϊόντα της Microsoft δεν εφαρμόζουν οποιαδήποτε ταξινόμηση τυχαία διαδικασία στρογγυλοποίησης.

Εναλλακτικό στρογγυλοποίησης

Εναλλακτική στρογγυλοποίηση στρογγυλοποίησης μεταξύ 0,5 επάνω και κάτω.5 σε διαδοχικέςκλήσεις.

Προϊόντα της Microsoft δεν υλοποιεί μια εναλλακτική διαδικασία στρογγυλοποίησης.

Η συνάρτηση Round() έχει υλοποιηθεί με ασυνέπεια

Η συνάρτηση Round() δεν έχει υλοποιηθεί με συνεπή τρόπο μεταξύδιάφορα προϊόντα της Microsoft για ιστορικούς λόγους.

Στον παρακάτω πίνακα αφορά προϊόν εφαρμογή:
   Product                             Implementation   ----------------------------------------------------------------------   Visual Basic for Applications 6.0   Banker's Rounding   Excel Worksheet                     Symmetric Arithmetic Rounding   SQL Server                          Either Symmetric Arithmetic Rounding                                       or Symmetric Round Down (Fix)                                       depending on arguments   Java Math library                   Asymmetric Arithmetic Rounding				

Η συνάρτηση Round() στο Visual Basic 6.0 και Visual Basic για εφαρμογές6.0 εκτελεί του banker στρογγυλοποίησης. Έχει ένα προαιρετικό δεύτερο όρισμα πουΚαθορίζει τον αριθμό των δεκαδικών ψηφίων για να στρογγυλοποιήσετε σε:
   Debug.Print Round(2.45, 1) returns 2.4.				

Δείγμα δεδομένων

Ο παρακάτω πίνακας δείχνει ορισμένα δείγματα δεδομένων και τις επιπτώσεις των διαφόρωνστρογγυλοποίησης για τους αριθμούς και τα σύνολα που δημιουργείται.
   Number/Int./Fix/Ceiling/Asym. Arith./Sym. Arith./Banker's/Random/Alt.   ---------------------------------------------------------------------   -2.6   -3   -2  -2      -3          -3           -3       -3     -3   -2.5   -3   -2  -2      -2          -3           -2       -2     -3   -2.4   -3   -2  -2      -2          -2           -2       -2     -2   -1.6   -2   -1  -1      -2          -2           -2       -2     -2   -1.5   -2   -1  -1      -1          -2           -2       -1     -1   -1.4   -2   -1  -1      -1          -1           -1       -1     -1   -0.6   -1    0   0      -1          -1           -1       -1     -1   -0.5   -1    0   0       0          -1            0       -1     -1   -0.4   -1    0   0       0           0            0        0      0    0.4    0    0   1       0           0            0        0      0    0.5    0    0   1       1           1            0        1      1    0.6    0    0   1       1           1            1        1      1    1.4    1    1   2       1           1            1        1      1    1.5    1    1   2       2           2            2        1      1    1.6    1    1   2       2           2            2        2      2    2.4    2    2   3       2           2            2        2      2    2.5    2    2   3       3           3            2        3      3    2.6    2    2   3       3           3            3        3      3				

Σύνολο όλων των αριθμών:
   Number/Int./Fix/Ceiling/Asym. Arith./Sym. Arith./Banker's/Random/Alt.   ---------------------------------------------------------------------   0.0    -9   0   9       3            0           0        1      0				

Σύνολο όλων των αρνητικών αριθμών:
   Number/Int./Fix/Ceiling/Asym. Arith./Sym. Arith./Banker's/Random/Alt.   ---------------------------------------------------------------------   -13.5  -18  -9  -9      -12          -15         -13      -13    -14				

Σύνολο όλων των θετικών αριθμών:
   Number/Int./Fix/Ceiling/Asym. Arith./Sym. Arith./Banker's/Random/Alt.   ---------------------------------------------------------------------   13.5   9    9   18      15           15          13       14     14				

Ο πίνακας εμφανίζει τη διαφορά μεταξύ των διαφόρων μεθόδων στρογγυλοποίησης. Γιαδιανέμονται τυχαία θετικών και αρνητικών αριθμών, Fix(), συμμετρικόαριθμητικός στρογγυλοποίηση, στρογγυλοποίηση του banker και εναλλασσόμενα στρογγυλοποίησης παρέχουντουλάχιστον διαφορά από πραγματική αθροίσματα με τυχαία στρογγυλοποίηση δεν τώραπίσω.

Ωστόσο, εάν οι αριθμοί είναι είτε όλα θετικοί ή μόνο αρνητικοί banker τουστρογγυλοποίηση, εναλλασσόμενα στρογγυλοποίησης και τυχαία στρογγυλοποίησης παρέχουν λιγότεροδιαφορά από την πραγματική αθροίσματα.

Δείγμα που ορίζονται από το χρήστη συναρτήσεις στρογγυλοποίησης

Το δείγμα κώδικα στην ακόλουθη ενότητα λίστα συνάρτηση παρέχει δείγμαυλοποιήσεις για κάθε τύπο στρογγυλοποίησης που περιγράφεται.

Οι συναρτήσεις που παρέχονται:
   AsymDown      Asymmetrically rounds numbers down - similar to Int().                 Negative numbers get more negative.   SymDown       Symmetrically rounds numbers down - similar to Fix().                 Truncates all numbers toward 0.                 Same as AsymDown for positive numbers.   AsymUp        Asymmetrically rounds numbers fractions up.                 Same as SymDown for negative numbers.                 Similar to Ceiling.   SymUp         Symmetrically rounds fractions up - that is, away from 0.                 Same as AsymUp for positive numbers.                 Same as AsymDown for negative numbers.   AsymArith     Asymmetric arithmetic rounding - rounds .5 up always.                 Similar to Java worksheet Round function.   SymArith      Symmetric arithmetic rounding - rounds .5 away from 0.                 Same as AsymArith for positive numbers.                 Similar to Excel Worksheet Round function.   BRound        Banker's rounding.                 Rounds .5 up or down to achieve an even number.                 Symmetrical by definition.   RandRound     Random rounding.                 Rounds .5 up or down in a random fashion.   AltRound      Alternating rounding.                 Alternates between rounding .5 up or down.   ATruncDigits  Same as AsyncTrunc but takes different arguments.				

Όλες οι συναρτήσεις αυτές λαμβάνουν δύο ορίσματα: ο αριθμός στρογγυλοποιείται και έναΠροαιρετική συντελεστή. Εάν παραλειφθεί το συντελεστή, τότε οι συναρτήσεις επιστρέφουν έναακέραιος αριθμός που δημιουργείται από μία από τις παραπάνω μεθόδους. Εάν καθορίζεται ο συντελεστής,ο αριθμός προσαρμόζεται με συντελεστή για να δημιουργήσετε διαφορετικά εφέ στρογγυλοποίησης.Για παράδειγμα, AsymArith (2.55, 10) παράγει 2.6, δηλαδή, στρογγυλοποιεί για1/συντελεστής = 1/10 = 0,1.

ΣΗΜΕΊΩΣΗ: Ένα συντελεστή 0 δημιουργεί ένα σφάλμα χρόνου εκτέλεσης: 1/συντελεστής = 1/0.

Ο παρακάτω πίνακας εμφανίζει τα αποτελέσματα διαφόρων παραγόντων:
   Expression       Result  Comment   --------------------------------------------------------------------   AsymArith(2.5)     3     Rounds up to next integer.   BRound(2.18, 20)   2.2   Rounds to the nearest 5 cents (1/20 dollar).   SymDown(25, .1)   20     Rounds down to an even multiple of 10.				

Η εξαίρεση την παραπάνω περιγραφή είναι ADownDigits, το οποίο είναι ένα πρότυποσυνάρτηση που σας επιτρέπει να καθορίσετε τον αριθμό των δεκαδικών ψηφίων αντίΈνας συντελεστής.
   Expression            Result Comment   ---------------------------------------------------------------------   ADownDigits(2.18, 1)    2.1  Rounds down to next multiple of 10 ^ -1.				

Συνάρτηση καταχώρησης


   Function AsymDown(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double     AsymDown = Int(X * Factor) / Factor   End Function   Function SymDown(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double     SymDown = Fix(X * Factor) / Factor   '  Alternately:   '  SymDown = AsymDown(Abs(X), Factor) * Sgn(X)   End Function   Function AsymUp(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double   Dim Temp As Double     Temp = Int(X * Factor)     AsymUp = (Temp + IIf(X = Temp, 0, 1)) / Factor   End Function   Function SymUp(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double   Dim Temp As Double     Temp = Fix(X * Factor)     SymUp = (Temp + IIf(X = Temp, 0, Sgn(X))) / Factor   End Function   Function AsymArith(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double     AsymArith = Int(X * Factor + 0.5) / Factor   End Function   Function SymArith(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double     SymArith = Fix(X * Factor + 0.5 * Sgn(X)) / Factor   '  Alternately:   '  SymArith = Abs(AsymArith(X, Factor)) * Sgn(X)   End Function   Function BRound(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double   '  For smaller numbers:   '  BRound = CLng(X * Factor) / Factor   Dim Temp As Double, FixTemp As Double     Temp = X * Factor     FixTemp = Fix(Temp + 0.5 * Sgn(X))     ' Handle rounding of .5 in a special manner     If Temp - Int(Temp) = 0.5 Then       If FixTemp / 2 <> Int(FixTemp / 2) Then ' Is Temp odd         ' Reduce Magnitude by 1 to make even         FixTemp = FixTemp - Sgn(X)       End If     End If     BRound = FixTemp / Factor   End Function   Function RandRound(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double   ' Should Execute Randomize statement somewhere prior to calling.   Dim Temp As Double, FixTemp As Double     Temp = X * Factor     FixTemp = Fix(Temp + 0.5 * Sgn(X))     ' Handle rounding of .5 in a special manner.     If Temp - Int(Temp) = 0.5 Then       ' Reduce Magnitude by 1 in half the cases.       FixTemp = FixTemp - Int(Rnd * 2) * Sgn(X)     End If     RandRound = FixTemp / Factor   End Function   Function AltRound(ByVal X As Double, _            Optional ByVal Factor As Double = 1) As Double   Static fReduce As Boolean   Dim Temp As Double, FixTemp As Double     Temp = X * Factor     FixTemp = Fix(Temp + 0.5 * Sgn(X))     ' Handle rounding of .5 in a special manner.     If Temp - Int(Temp) = 0.5 Then       ' Alternate between rounding .5 down (negative) and up (positive).       If (fReduce And Sgn(X) = 1) Or (Not fReduce And Sgn(X) = -1) Then       ' Or, replace the previous If statement with the following to       ' alternate between rounding .5 to reduce magnitude and increase       ' magnitude.       ' If fReduce Then         FixTemp = FixTemp - Sgn(X)       End If       fReduce = Not fReduce     End If     AltRound = FixTemp / Factor   End Function   Function ADownDigits(ByVal X As Double, _            Optional ByVal Digits As Integer = 0) As Double     ADownDigits = AsymDown(X, 10 ^ Digits)   End Function				

ΣΗΜΕΊΩΣΗ: Με την εξαίρεση των του Excel MRound() συνάρτηση φύλλου εργασίας, στο ενσωματωμένο-Στρογγυλοποίηση λειτουργίες λαμβάνει ορίσματα με τον τρόπο ADownDigits, όπουτο δεύτερο όρισμα καθορίζει τον αριθμό των ψηφίων αντί του συντελεστή.

Στρογγυλοποίησης υλοποιήσεις που παρουσιάζονται εδώ χρησιμοποιεί παράγοντα, όπως MRound(),που είναι πιο ευέλικτη, επειδή δεν χρειάζεται να στρογγυλοποιήσετε δύναμη του 10.Μπορείτε να γράψετε τις λειτουργίες εξομοίωσης με τον τρόπο ADownDigits.

Κινητό σημείο περιορισμοί

Όλες τις υλοποιήσεις στρογγυλοποίησης που παρουσιάζονται εδώ χρησιμοποιήσετε διπλά δεδομέναΤύπος, το οποίο μπορεί να αντιπροσωπεύει περίπου 15 δεκαδικά ψηφία.

Δεδομένου ότι δεν είναι όλες οι κλασματικές τιμές μπορούν να εκφραστούν ακριβώς, μπορεί να λάβετεμη αναμενόμενα αποτελέσματα επειδή η εμφανιζόμενη τιμή δεν συμφωνεί με το αποθηκευμένοη τιμή.

Για παράδειγμα, ο αριθμός 2.25 μπορεί να αποθηκεύονται εσωτερικά ως..., 2.2499999θα στρογγυλοποιήσετε προς τα κάτω με αριθμητικούς στρογγυλοποίηση, αντί επάνω όπως ίσως ναΠεριμένετε. Επίσης, οι περισσότερες υπολογισμοί περνάει από, μεγαλύτερο αριθμόπιθανότητα ότι η αποθηκευμένη δυαδική τιμή θα αποκλίνει από το ιδανικόδεκαδική τιμή.

Εάν συμβαίνει αυτό, μπορείτε να επιλέξετε έναν διαφορετικό τύπο δεδομένων, όπωςΝόμισμα, το οποίο είναι ακριβή 4 δεκαδικά ψηφία.

Μπορείτε επίσης να κάνετε τα δεδομένα τύποι παραλλαγή και CDec() να χρησιμοποιήσετεΜετατρέψτε τα πάντα τον τύπο δεκαδικών δεδομένων που μπορεί να είναι ακριβής 28δεκαδικά ψηφία.

Στρογγυλοποίηση τιμές νομισματικής μονάδας

Όταν χρησιμοποιείτε τον τύπο δεδομένων Νομισματική μονάδα, που είναι ακριβή 4 δεκαδικά ψηφία,Συνήθως, θέλετε να στρογγυλοποιήσετε σε 2 δεκαδικά ψηφία για σεντς.

Η παρακάτω συνάρτηση Round2CB είναι μια μόνιμη παραλλαγή που εκτελείτου Banker στρογγυλοποίηση 2 δεκαδικά ψηφία αλλά πολλαπλασιάστε το πρωτότυποΑΦΜ (Social Security Nymber). Αυτό αποφεύγει μια συνθήκη πιθανή υπερχείλιση, εάν το ποσό είναιπλησιάζει τα όρια του τύπου δεδομένων "Νομισματική μονάδα".
   Function Round2CB (ByVal X As Currency) As Currency     Round2CB = CCur(X / 100) * 100   End Function				

Στρογγυλοποίηση δεκαδικές τιμές

Το ακόλουθο είναι ένα παράδειγμα ασύμμετρη αριθμητικός στρογγυλοποίησης χρησιμοποιώντας τοΤύπος δεκαδικών δεδομένων:
   Function AsymArithDec(ByVal X As Variant, _            Optional ByVal Factor As Variant = 1) As Variant     If Not IsNumeric(X) Then       AsymArithDec = X     Else       If Not IsNumeric(Factor) Then Factor = 1       AsymArithDec = Int(CDec(X * Factor) + .5)     End If   End Function				

Απόθεση Precision ως συντόμευση στο στρογγυλοποίησης

Όπως διδασκόμενες στο σχολείο, στρογγυλοποίηση είναι συνήθως αριθμητική στρογγυλοποίησης χρησιμοποιώντας θετικήαριθμοί. Με αυτόν τον τύπο στρογγυλοποίησης, χρειάζεται μόνο να γνωρίζετε τον αριθμό 1ψηφίο πέρα από όπου στρογγυλοποίησης για. Παράβλεψη ψηφία μετά το πρώτοδεκαδικό ψηφίο. Με άλλα λόγια, η ακρίβεια απορρίπτεται ως συντόμευση γιαΣτρογγυλοποίηση την τιμή.

Για παράδειγμα, 2.5 και 2.51 στρογγυλοποίηση έως 3, ενώ 2.4 και 2.49 roundπρος τα κάτω σε 2.

Κατά τη χρήση του banker στρογγυλοποίησης (ή άλλων μεθόδων που στρογγυλοποίηση.5 είτε επάνω ήπρος τα κάτω) ή όταν στρογγυλοποιεί τους αρνητικούς αριθμούς χρήση ασύμμετρων αριθμητικόςστρογγυλοποίηση, απόθεση ακρίβεια μπορεί να οδηγήσει σε εσφαλμένα αποτελέσματα όπου ίσωςΣτρογγυλοποιεί τον πλησιέστερο αριθμό.

Για παράδειγμα, με στρογγυλοποίηση του banker, 2.5 Στρογγυλοποιεί προς τα κάτω για να στρογγυλοποιεί τον αριθμό 2 και 2.51έως 3.

Με ασύμμετρη αριθμητικούς στρογγυλοποίηση, στρογγυλοποιεί το -2,5 έως -2 κατά-2.51Στρογγυλοποιεί προς τα κάτω -3.

Οι συναρτήσεις χρήστη που παρουσιάζονται σε αυτό το άρθρο λαμβάνουν πλήρως τον αριθμόακρίβεια υπόψη κατά την εκτέλεση στρογγυλοποίησης.
Αναφορές
Βοήθεια της Visual Basic, έκδοση 6.0. θέμα: Int, διόρθωση συναρτήσεις Συνάρτηση ROUND

Microsoft Transact SQL Βοήθεια. θέμα: στρογγυλές συνάρτηση. Συνάρτηση δάπεδο. Ανώτατο όριοΣυνάρτηση

(c) Microsoft Corporation 1998 κάθε νόμιμου δικαιώματος. ΕισφορέςMalcolm Φρέιτας, Microsoft Corporation.

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 196652 - Τελευταία αναθεώρηση: 12/05/2015 09:52:15 - Αναθεώρηση: 4.0

Microsoft Visual Basic Control Creation Edition, Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic for Applications 6.0, Microsoft SQL Server 6.0 Standard Edition, Microsoft SQL Server 6.5 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbhowto kbmt KB196652 KbMtel
Σχόλια