Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] προβλημα με αρθοισμα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4638-problima-me-arthoisma.html)

johnioa 14-07-17 13:17

γιώργο νίκο, ευχαριστώ παιδιά παρα πολυ για το ενδιαφερον σας.... να πω κατι εγώ .... αυτο το προβλημα που εχω αφορα μια βαση δεδομενων στην οποια καταχωρω τιμές προϊόντων απο τιμολογια τα οποια μου τα δεινουν οι προμηθευτες μου κι πρεπει εγώ να συνταξω ενα δελτιο και μια εκθεση για να εγκινω τις προμηθειες και να ισοσκελίζω στην βαση μου τις τιμες τιμολογιων ανα ειδος που αφορουν προμηθειες παιδικου σταθμου..... ναι με το να προσθεσω εναν δεκαδικο του τυπου "0,00000001" στο συγκεκριμενο τιμολογιο μου φερνει το επιθυμιτό αποτελεσμα, αλλα σε καποιο αλλο δεν υπαρχει ο κινδυνος να μου φερει λαθος αποτελεσμα? και στο exel που χτυπησα τα νουμερα μου εφερε αποκληση , εκει που δεν μου φερνει αποληση ειναι η αριθμομηχανη για αυτο ψαχνω το τροπο με τον οποιον σε access να μπορω να κανω πράξεις όπως σε μια αριθμομηχανη με την ίδια λογική δηλαδη….. παντως παιδια με το 0,00000001 δούλεψε μια χαρά η round τωρα αν εχω απόκλιση σε αλλα τιμολογια δεν ξερω ….πάντως ολόψυχα σας ευχαριστώ για το ενδιαφερον σας και την βοηθεια σας

Meteora 14-07-17 13:50

Καλημέρα.
Παράθεση:

...αλλα σε καποιο αλλο δεν υπαρχει ο κινδυνος να μου φερει λαθος αποτελεσμα?
...μέχρι να βρεθεί μια πραγματική περίπτωση, ό,τι έχω προτείνει ισχύει. Αν οι αριθμητικές πράξεις γεννούν Ν δεκαδικά ψηφία, τότε η προσθήκη του 0,00...1, με τη μονάδα να βρίσκεται σε δεκαδική θέση Ν+1 είτε Ν+2 (;) τουλάχιστον, δεν θα σε δημιουργήσει πρόβλημα.
Αυτά Γιάννη / Νίκος

Υστερολόγιο: Σε λίγες μέρες θα ξεκινήσω ένα πρόγραμμα-δίκτυο παιδικών σταθμών με κεντρική υπηρεσία του Δήμου. Θα υπάρχουν και λογιστικές διαχειρίσεις. Λοιπόν! Με την Round() θα εργαστώ.

kapetang 14-07-17 13:50

Γιάννη, νομίζω ότι θα πρέπει να ακολουθήσεις την πρόταση του Νίκου.

Η περίπτωση να εμφανιστεί κάπου αλλού λάθος, χωρίς να αποκλείεται, είναι απίθανη.

johnioa 14-07-17 14:10

κι εγω κατι παρομοιο εχω κανει :) αυτο ήθελα για να το ολοκληρωσω εκει ήταν το κομημα μου τωρα ειναι ολοκληρωμενο :)

kapetang 14-07-17 14:23

Γιάννη δες την προηγούμενη πρόταση. Την τροποποίησα.

johnioa 14-07-17 14:35

καλησπερα γιωργο.... που να την δω φίλε?

johnioa 14-07-17 14:42

αυτο που εκανα σήμερα εγώ, γιώργο/νικο ήταν "=katharitimi: round(([ΠΟΣΟΤΗΤΑ ΠΑΡΑΛΑΒΗΣ]*[timimonados])+0,000000000001;2)" Και μου το εφερε μια χαρα σε οτι τιμολογιο παλιο ειχα περασμενο καθως και στα νεα που περασα σημερα ίδιο εκανα και στο πεδιο "ekptosiposo" γιατί κι εκει ειχα μια αποκληση και στρωσαν ολαααααααααααααα :thumbup::thanks:

dimmag 13-08-17 09:27

Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 26338)
Έχω τη γνώμη ότι η προσθήκη ενός μικρού αριθμού μπορεί να έχει άλλες παρενέργειες.

Για παράδειγμα: round(13,344999999999;2) = 13,34.

Ενώ round(13,344999999999 + 0,000000001;2)=13,35

Καλημέρα
Μια λύση σε αυτό το πρόβλημα είναι:
πολ/ζω με 1000 για στρογγυλοποίηση 2 δεκαδικών
13,344999999999*1000=13344,999999999
τον κάνω ακέραιο
int(13,344999999999*1000)=13344
διαιρώ με 1000
int(13,344999999999*1000)/1000=13,344
και στρογγυλοποιώ προσθέτοντας μια μικρή ποσότητα πχ 0,000000001
round((int(13,344999999999*1000)/1000)+0,000000001)=13,34

Δηλαδή round((Int(([ΤΙΜΗ]*[ΦΠΑ])*1000))/1000+0,000000001;2)

Επειδή (είχα ένα πρόβλημα παλιά με μέσους όρους) εγώ ξανακάνω την ίδια διαδικασία για δύο δεκαδικά πολ/ζοντας με 100 /ακέραιος/διαίρεση με 100 (το στρογγυλοποιημένο ποσό τώρα)

Δηλαδή int(round((Int(([ΤΙΜΗ]*[ΦΠΑ])*1000))/1000+0,000000001;2)*100)/100

Ευχαριστώ και Χρόνια πολλά
Δημήτρης


Η ώρα είναι 03:06.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2