Στρογγυλοποίηση αριθμών...

1,421 views
Skip to first unread message

Bits and Bytes Software

unread,
Nov 19, 2012, 3:20:38 AM11/19/12
to SoftOne Προγραμματισμός, Αλέξανδρος Δημητριάδης
Καλή σας ημέρα και καλή εβδομάδα.

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

Πχ. έχω τέσσερις γραμμές σε ένα παραστατικό, με τα εξής στοιχεία
(ποσότητα, τιμή, έκπτωση - όλα τα είδη έχουν ΦΠΑ 13%)

3 / 10,48 / 20%
7 / 10,48 / 20%
1 / 10,48 / 99%
1 / 10,48 / 99%

Τα σύνολα βγαίνουν ως εξής:

Καθαρή αξία: 84,0496
ΦΠΑ: 10,926448
Σύνολο: 94,976048

Στο παραστατικό (όταν το καταχωρήσω απευθείας μέσα στο Soft1), η στρογγυλοποίηση στα δύο δεκαδικά γίνεται ως εξής:

Καθαρή αξία: 84,0496 -> 84,04 (truncate σε δύο δεκαδικά)
ΦΠΑ: 10,926448 -> 10,93 (round σε δύο δεκαδικά)
Σύνολο: 94,976048 -> 94,97 (truncate σε δύο δεκαδικά)

Η απορία μου είναι η εξής απλή: Τελικά, round κάνει, ή truncation; Και πότε;

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software

Dimitrios Kostouros

unread,
Nov 19, 2012, 7:23:06 AM11/19/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης

Στράτο καλημέρα,

 

Η απάντηση σε αυτό που ρωτάς είναι, ούτε round ούτε truncate,

αλλά round στο σύνολο του παραστατικού.

 

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

Αν για παράδειγμα έχουμε στις γραμμές του τιμολογίου 5 είδη όπως αναφέρεις και κάνουμε στρογγυλοποίηση στον ΦΠΑ στα 2 δεκαδικά υπάρχει η πιθανότητα να έχουμε ένα δεκαδικό διαφορά σε κάθε γραμμή.

Για τις γραμμές αυτό είναι σωστό αλλά για το σύνολο μπορεί να έχουμε μια διαφορά έως 5 δεκαδικά (μονάδες) ή και περισσότερα αναλόγως τον αριθμό των γραμμών.

Αν κάποιος προσθέσει ΦΠΑ στην καθαρή αξία του τιμολογίου το πιθανότερο είναι να μην ταιριάζει με το τελικό ποσό.

 

Η λύση είναι να υπολογιστεί ο ΦΠΑ ανάποδα. Δηλαδή από το σύνολο προς τις γραμμές.

Υπολογίζουμε το ΦΠΑ για το σύνολο ανά συντελεστή και μετά κάνουμε επιμερισμό στις γραμμές ανάλογα με το βάρος τους στην καθαρή αξία.

Βέβαια δεν είναι τόσο εύκολο όσο ακούγεται γιατί υπάρχουν και κάποια φαινόμενα loop που πρέπει να αποφύγεις αλλά το αποτέλεσμα είναι αυτό που ανέφερα.

 

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

 

Το παράδοξο σε αυτή την μέθοδο είναι το φαινόμενο που αναφέρεις αλλά και το ότι κάποιες αξίες συνόλου (σε συνδυασμό με αριθμό γραμμών και ποσοστό ΦΠΑ) είναι αδύνατον να τις έχουμε, μεταπηδώντας στο αμέσως επόμενο ή προηγούμενο δεκαδικό, αλλά αυτό είναι πολύ σπάνιο.

 

Κωστούρος Δημήτριος

Bits and Bytes Software

unread,
Nov 19, 2012, 7:35:56 AM11/19/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Μα το πρόβλημα δεν είναι μόνο στο ΦΠΑ, αλλά και στις τιμές. Όταν έχεις πχ. συνολική αξία (χωρίς ΦΠΑ) 35,5678 ευρώ, ποια είναι η αξία που θα πρέπει να τυπωθεί στο τιμολόγιο; 35,56 (truncate) ή 35,57 (round); Γιατί το Soft1 φαίνεται να κάνει truncate και όχι round...

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software


--
Softone Developers Network group.
To post to this group, send email to so...@googlegroups.com

Dimitrios Kostouros

unread,
Nov 19, 2012, 8:19:50 AM11/19/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης

Αυτά που έγραψα αναφέρονται στον τρόπο που πιθανόν να λειτουργεί το FINDOC και τα αποτελέσματα των υπολογισμών ενδέχεται να περιέχουν περισσότερα από δυο δεκαδικά.

Η εκτύπωση είναι ένα report και έχει να κάνει με την προβολή των δεδομένων.

 

Το πρόβλημα που αντιμετωπίζεις που είναι;

Στην εκτύπωση ή στα δεδομένα της βάσης;

 

 

 

Κωστούρος Δημήτριος

www.mbsoft.gr

 
 

Bits and Bytes Software

unread,
Nov 19, 2012, 10:24:41 AM11/19/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Στην φόρμα (σελίδα/εκτύπωση). Θυμίζω ότι στο πρώτο μου μήνυμα είχα και σχετικό παράδειγμα, όπου ο υπολογισμός των συνόλων βγαίνει ως εξής:

Καθαρή αξία: 84,0496 -> 84,04 (truncate σε δύο δεκαδικά)
ΦΠΑ: 10,926448 -> 10,93 (round σε δύο δεκαδικά)
Σύνολο: 94,976048 -> 94,97 (truncate σε δύο δεκαδικά)

Και συνεπώς, η απορία μου είναι: truncate ή round; Truncate οι τιμές και η διαφορά τους είναι το ΦΠΑ; Δεν ξέρω...

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software


 
 

--

Athanasiadis George

unread,
Nov 19, 2012, 11:43:46 AM11/19/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Οι στρογγυλοποιήσεις δεν εφαρμόζουν Truncate ή Round ο κανόνας του Ευρώ
λέει οτι αν το τρίτο δεκαδικό ειναι 5 και πάνω το 2ο στρογγυλοποιείται προς τα πάνω
αρα με τις τιμές και εκπτώσεις που έδωσες σωστά στο κάνει το Softone


        Εκπτωση Στρογγ Μικτή - Εκπτ
Ποσοτητα Τιμή Αξία Εκπτ Με δεκαδικα Ευρώ Καθ.Αξία
3 10,48 31,44 20 6,288 6,29 25,15
7 10,48 73,36 20 14,672 14,67 58,69
1 10,48 10,48 99 10,3752 10,38 0,10
1 10,48 10,48 99 10,3752 10,38 0,10
            84,04

Bits and Bytes Software

unread,
Nov 20, 2012, 12:51:52 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Οπότε μιλάμε για rounding στο δεύτερο δεκαδικό, σε επίπεδο γραμμής και όχι στο σύνολο (το σύνολο είναι το άθροισμα των στρογγυλοποιημένων τιμών και όχι η στρογγυλοποίηση του αθροίσματος). Οκ, ευχαριστώ!

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software


Athanasiadis George

unread,
Nov 20, 2012, 2:18:10 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Ξέχασα να σου πώ οτι και το ΦΠΑ το κάνεις στρογγυλοποίηση επι γραμμών.
Αθροίζεις το ΦΠΑ των γραμμών  αλλά ελέγχεις κατα συντελεστή αν συμφωνεί με το στρογγυλοποιημένο σύνολο του ΦΠΑ.
Και αν το σύνολο γραμμών ΦΠΑ δεν συμφωνεί με το υπολογισμένο ( στρογγυλοποιημένο) ΦΠΑ Συνόλου "αγιάρεις" τις γραμμές.
Ισχύουν δηλαδή αυτά που σου είπε ο Δημήτρης

panoramatistis

unread,
Nov 20, 2012, 6:34:54 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Σε μιά αντίστοιχη custom εφαρμογή που είχα φτειάξει στο Softone, είχα ασυμφωνίες στα σύνολα του παραστατικού αναλυμένα ανά ΦΠΑ. 

Η λύση που βρήκα ήταν : 3 δεκαδικά στις γραμμές και στους υπολογισμούς αλλά εμφάνιση μόνο των 2 .... αυτό και στις οθόνες καταχώρησης αλλά και στις εκτυπώσεις.
Ταυτόγχρονα, έβαλα και στις γενικές παραμέτρους της εταιρείας 3 δεκαδικά αξιών ώστε όλα να υπολογίζονται με τον ίδιο τρόπο.

Bits and Bytes Software

unread,
Nov 20, 2012, 6:46:13 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Τέλος πάντων, φαίνεται ότι δουλεύει... παίρνουμε τις καθαρές αξίες ανά γραμμή, βρίσκουμε συνολικά τον ΦΠΑ (ανά κατηγορία) και κάνουμε επιμερισμό ανά γραμμή και βρίσκουμε και τα σύνολα ανά γραμμή με τον ίδιο τρόπο. Ουφ... φαίνεται ότι έχω τελειώσει, παραστατικό και φορητό δίνουν ίδιες τιμές.

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software


--

Dimitrios Kostouros

unread,
Nov 20, 2012, 7:45:12 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης

Στράτο καλημέρα.

 

Αυτά που ανέφερα παραπάνω έχουν να κάνουν με τον τρόπο που υπολογίζει η library το φπα και μπορώ να σε διαβεβαιώσω ότι στον υπολογισμό του φπα λαμβάνουν χώρα και τα σύνολα του παραστατικού.

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

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

 

Για να επιβεβαιώσεις αυτό που λέω κάνε το εξής:

Άνοιξε ένα νέο παραστατικό πωλήσεων και  πρόσθεσε στις γραμμές σαν νέα στήλη την αξία φπα γραμμής ώστε να την βλέπεις.

Κατόπιν πρόσθεσε 2 γραμμές με 23% φπα και αξία 10,07 και δες τότε την αξία φπα που έχει κάθε γραμμή.

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

Στο δικό μου πάντως βλέπω τον ακόλουθο πίνακα:

 

Είδος Δοκιμή              10,07               ΦΠΑ 23% --> 2,32

Είδος Δοκιμή              10,07               ΦΠΑ 23% --> 2,31

 

Αυτό σημαίνει ότι γίνεται επιμερισμός και όχι μόνο του φπα αλλά και των λοιπών πρόσθετων στοιχείων των συνόλων του παραστατικού όπως είναι οι εκπτώσεις συνόλου, ώστε να είναι οι γραμμές σε θέση να απεικονίσουν τα σύνολα ακριβώς.
 

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

 

 

Κωστούρος Δημήτριος
 
 

Bits and Bytes Software

unread,
Nov 20, 2012, 10:07:09 AM11/20/12
to so...@googlegroups.com, Αλέξανδρος Δημητριάδης
Αυτό ακριβώς έκανα κι εγώ τελικά και δουλεύει υπέροχα! :)

Ευχαριστώ για όλες τις πληροφορίες!

Με εκτίμηση
Στράτος Νικολαΐδης
Bits and Bytes Software


 
 

--
Reply all
Reply to author
Forward
0 new messages