Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > ROUND Ζητούμενη ακρίβεια στρογγυλοποίηση

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-02-22, 23:26
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα Δημήτρη

Συγκρίνοντας το γενικό τύπο με τον τύπο για 2 δεκαδικά νομίζω ότι στο γενικό πρέπει να προστεθούν κάποιες παρενθέσεις.

Συγκεκριμένα πιστεύω ότι πρέπει να γίνει:

Round_ok (x,2)=Round(Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1)) + 1 / (10 ^ (n + 2)), n)

Παρακάτω βλέπουμε μια δοκιμή στο παράθυρο Immediate της VBA

x=402.4250000
n=2
?Round(Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1)) + 1 / (10 ^ (n + 2)), n)
402,43 <---------------------σωστό
?round(x,2)
402,42 <---------------------λάθος
Απάντηση με παράθεση
  #2  
Παλιά 19-02-22, 08:38
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από kapetang Εμφάνιση μηνυμάτων
Καλησπέρα Δημήτρη

Συγκρίνοντας το γενικό τύπο με τον τύπο για 2 δεκαδικά νομίζω ότι στο γενικό πρέπει να προστεθούν κάποιες παρενθέσεις.

Συγκεκριμένα πιστεύω ότι πρέπει να γίνει:

Round_ok (x,2)=Round(Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1)) + 1 / (10 ^ (n + 2)), n)

Παρακάτω βλέπουμε μια δοκιμή στο παράθυρο Immediate της VBA

x=402.4250000
n=2
?Round(Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1)) + 1 / (10 ^ (n + 2)), n)
402,43 <---------------------σωστό
?round(x,2)
402,42 <---------------------λάθος
Σωστό για τις παρενθέσεις το έγραψα βιαστικά
η φιλοσοφία είναι να αφήνω 1 παραπάνω δεκαδικό από όσα θέλω να στρογγυλοποιήσω και να προσθέτω μικροποσότητα και αν το προχωρήσουμε την χρειάζεται μόνο όταν το επόμενο ψηφίο του ψηφίου στρογγυλοποίησης είναι 5 και έπονται μηδενικά δηλ αν

Int(x * (10 ^ (n + 1))) Mod 10 = 5 and (x -Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1))) =0

γιατί τότε αν δεν κάνω λάθος δεν δουλεύει σωστά η round στην access

Γενικά η Int(x * (10 ^ (n + 1))) / (10 ^ (n + 1)) είναι χρήσιμη να περιορίζουμε τα δεκαδικά ψηφία σίγουρα σε n.
Ευχαριστώ
Απάντηση με παράθεση
  #3  
Παλιά 19-02-22, 10:13
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Δημήτρη σωστά κατάλαβες ότι η Round, κάποιες φορές, όταν η ποσότητα που θα αποκοπεί είναι κοντά στο 0,5 (πχ 0.500000000000 ή 0.4999999999999) του τελευταίου ψηφίου που θα μείνει, δε δίνει σωστό αποτέλεσμα.

Θεωρώ χρήσιμο τον τύπο που πρότεινες.

Να είσαι καλά και καλή συνέχεια.
Απάντηση με παράθεση
  #4  
Παλιά 22-02-22, 15:53
Όνομα: Πάκος
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 17-12-2011
Περιοχή: Θεσσαλονικη
Μηνύματα: 173
Προεπιλογή round συνεχεια

Καλησπερα
υπαρχει και αυτη η λυση


iif(RIGHT(ROUND([Ποσό];3);1)=5;ROUND([Ποσό]+0,001;2);ROUND([Ποσό];2))


ή

IF RIGHT(ROUND(ME.FIELD,3),1)=5 THEN
ME.FIELD = ROUND(ME.FIELD+0,001,2)
ELSE
ME.FIELD = ROUND(ME.FIELD,2)
END IF

η οποία δουλευει
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Στρογγυλοποίηση αριθμών και σταθερό σε χχ,50 BLOUMM Excel - Ερωτήσεις / Απαντήσεις 5 14-02-20 14:19
ΣΥΝΑΡΤΗΣΗ ROUND(ΣΤΡΟΓΓΥΛΕΜΕΝΗ) smasak Access - Ερωτήσεις / Απαντήσεις 3 08-11-19 17:34
στρογγυλοποίηση στην πλησιέστερη δεκάδα ΤΑΣΟΣ Access - Ερωτήσεις / Απαντήσεις 3 23-12-16 09:56
[Συναρτήσεις] Στρογγυλοποίηση αριθμών με προϋποθέσεις Lefteris Excel - Ερωτήσεις / Απαντήσεις 4 16-05-11 10:51
[Συναρτήσεις] Συναρτηση για μεγαλυτερη ακριβεια υπολογισμων chris1978 Excel - Ερωτήσεις / Απαντήσεις 3 08-12-10 01:03


Η ώρα είναι 01:43.