Δεκαδική ακρίβεια για υπολογισμούς API

Τελευταία ενημέρωση: 26 Ιουνίου 2025

Υπολογισμένη έναντι εμφανιζόμενης ακρίβειας

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

Για παράδειγμα, οι υπολογισμοί Bitcoin (BTC) χρησιμοποιούν έως και 10 δεκαδικά ψηφία (η μέγιστη χρησιμοποιήσιμη ακρίβεια για το BTC είναι 8 θέσεις), αλλά μερικές φορές εμφανίζονται χρησιμοποιώντας μόνο 5 δεκαδικά ψηφία. Ομοίως, οι υπολογισμοί US Dollar (USD) χρησιμοποιούν έως και 4 δεκαδικά ψηφία (η μέγιστη χρησιμοποιήσιμη ακρίβεια για το USD είναι φυσικά 2 θέσεις), αλλά συχνά εμφανίζονται χρησιμοποιώντας μόνο 2 δεκαδικά ψηφία.

Το endpoint Assets του REST API μπορεί να χρησιμοποιηθεί για τον προσδιορισμό της μέγιστης δεκαδικής ακρίβειας για μεμονωμένα νομίσματα:

$ ./krakenapi Assets asset=xbt,usd

{"error":[],"result":{"XXBT":{"aclass":"currency","altname":"XBT","decimals":10,"display_decimals":5},"ZUSD":{"aclass":"currency","altname":"USD","decimals":4,"display_decimals":2}}}

Όπως φαίνεται, το endpoint Assets παρέχει τις δεκαδικές ακρίβειες υπολογισμού μέσω των πεδίων decimals και παρέχει τις δεκαδικές ακρίβειες εμφάνισης μέσω των πεδίων display_decimals.

 

Αντιστοίχιση τοπικών τιμών με τιμές API

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

Για παράδειγμα, μια εντολή SHIB/USD για αγορά 50.123 SHIB στην τιμή των $0,00002901 οδηγεί σε μια συναλλαγή αξίας $1,45406823 (50.123 x 0,00002901 = 1,45406823), αλλά το endpoint Ledgers του REST API δείχνει ότι το υπόλοιπο USD μειώθηκε κατά μια τιμή μικρότερης ακρίβειας, $1,4541:

"L2A7BN-OLRUR-DGZH7F":{"refid":"T5JORM-HM432-GQ3RGY","time":1639991413.4671,"type":"trade","subtype":"","aclass":"currency","asset":"ZUSD","amount":"-1.4541","fee":"0.0000","balance":"124.7277"}

Η λύση σε αυτόν τον τύπο ασυμφωνίας δεκαδικής ακρίβειας είναι η στρογγυλοποίηση/περικοπή των τοπικών τιμών ώστε να αντιστοιχούν στη δεκαδική ακρίβεια που παρέχεται από το endpoint Assets του REST API.

Συνεχίζοντας το παράδειγμα SHIB/USD, το endpoint Assets υποδεικνύει μια ακρίβεια υπολογισμού USD 4 (βλ. την προηγούμενη ενότητα παραπάνω), επομένως η τοπικά υπολογισμένη τιμή των $1,45406823 θα πρέπει επίσης να στρογγυλοποιηθεί/περικοπεί σε δεκαδική ακρίβεια 4:

  • 50.123 x 0,00002901 = 1,45406823 στρογγυλοποιημένο σε 4 δεκαδικά ψηφία = 1,4541

Όπως φαίνεται, με τη στρογγυλοποίηση/περικοπή στην κατάλληλη δεκαδική ακρίβεια, η τελική τιμή των $1,4541 αντιστοιχεί ακριβώς στην τιμή που παρέχεται από το endpoint Ledgers, επιτρέποντας την επιτυχή αντιστοίχιση των τοπικών τιμών με τις τιμές API.

Χρειάζεστε περισσότερη βοήθεια;