Tizedes pontosság az API számításokhoz

Utolsó frissítés: 2025. június 26.

Számított és megjelenített pontosság

A belső API számítások annyi tizedesjegyet használnak, amennyi az adott valuta pontosságától függően szükséges, de a megjelenített értékek néha kerekítve/csonkítva vannak, hogy használható értéket kapjunk, vagy formázási célból.

Például a Bitcoin (BTC) számítások akár 10 tizedesjegyet is használnak (a BTC maximális használható pontossága 8 helyi érték), de néha csak 5 tizedesjeggyel jelennek meg. Hasonlóképpen, az amerikai dollár (USD) számítások akár 4 tizedesjegyet is használnak (az USD maximális használható pontossága természetesen 2 helyi érték), de gyakran csak 2 tizedesjeggyel jelennek meg.

A REST API Assets végpontja használható az egyes valuták maximális tizedes pontosságának meghatározására:

$ ./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}}}

Amint látható, az Assets végpont a számítási tizedes pontosságokat a decimals mezőkön keresztül, a megjelenítési tizedes pontosságokat pedig a display_decimals mezőkön keresztül biztosítja.

 

Helyi értékek egyeztetése az API értékekkel

A helyi számításokból származó értékek (például egy ügylet árából és volumenéből származó egyenlegváltozások kiszámítása) gyakran több tizedesjegyet tartalmaznak, mint amennyi szükséges, és kerekíteni/csonkítani kell őket, hogy megfeleljenek az API által biztosított értékeknek.

Például egy SHIB/USD megbízás 50 123 SHIB vásárlására 0,00002901 $ áron 1,45406823 $ értékű ügyletet eredményez (50 123 x 0,00002901 = 1,45406823), de a REST API Ledgers végpontja azt mutatja, hogy az USD egyenleg egy kisebb pontosságú értékkel, 1,4541 $-ral csökkent:

"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"}

Az ilyen típusú tizedes pontossági eltérések megoldása az, hogy a helyi értékeket kerekítjük/csonkítjuk, hogy megfeleljenek a REST API Assets végpontja által biztosított tizedes pontosságnak.

Folytatva a SHIB/USD példát, az Assets végpont 4-es USD számítási pontosságot jelez (lásd a fenti előző szakaszt), ezért a helyileg számított 1,45406823 $ értéket is 4 tizedes pontosságra kell kerekíteni/csonkítani:

  • 50 123 x 0,00002901 = 1,45406823 kerekítve 4 tizedesjegyre = 1,4541

Amint látható, a megfelelő tizedes pontosságra történő kerekítéssel/csonkítással az 1,4541 $ végső érték pontosan megegyezik a Ledgers végpont által biztosított értékkel, lehetővé téve a helyi értékek sikeres egyeztetését az API értékekkel.

További segítségre van szükséged?