API-laskelmien desimaalitarkkuus

Viimeksi päivitetty: 26.6.2025

Laskettu vs. näytetty tarkkuus

Sisäiset API-laskelmat suoritetaan käyttäen niin monta desimaalia kuin kyseisen valuutan tarkkuus edellyttää, mutta näytetyt arvot pyöristetään tai katkaistaan joskus käyttökelpoisen arvon saavuttamiseksi tai muotoilutarkoituksissa.

Esimerkiksi Bitcoinin (BTC) laskelmissa käytetään jopa 10 desimaalia (BTC:n suurin käyttökelpoinen tarkkuus on 8 desimaalia), mutta ne näytetään joskus vain 5 desimaalin tarkkuudella. Vastaavasti Yhdysvaltain dollarin (USD) laskelmissa käytetään jopa 4 desimaalia (USD:n suurin käyttökelpoinen tarkkuus on tietysti 2 desimaalia), mutta ne näytetään usein vain 2 desimaalin tarkkuudella.

REST API:n Assets-päätepistettä voidaan käyttää yksittäisten valuuttojen suurimpien desimaalitarkkuuksien määrittämiseen:

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

Kuten esitetty, Assets-päätepiste tarjoaa laskennan desimaalitarkkuudet decimals-kenttien kautta ja näyttödesimaalitarkkuudet display_decimals-kenttien kautta.

 

Paikallisten arvojen yhdistäminen API-arvoihin

Paikallisista laskelmista (kuten saldomuutosten laskeminen kaupan hinnan ja volyymin perusteella) johdetuissa arvoissa on usein enemmän desimaaleja kuin tarvitaan, ja ne on pyöristettävä tai katkaistava vastaamaan API:n antamia arvoja.

Esimerkiksi SHIB/USD-tilaus ostaa 50 123 SHIBiä hintaan 0,00002901 dollaria, mikä johtaa kauppaan, jonka arvo on 1,45406823 dollaria (50 123 x 0,00002901 = 1,45406823), mutta REST API:n Ledgers-päätepiste näyttää, että USD-saldo pieneni tarkemmalla arvolla 1,4541 dollaria:

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

Ratkaisu tämäntyyppiseen desimaalitarkkuuden epäjohdonmukaisuuteen on pyöristää tai katkaista paikalliset arvot vastaamaan REST API:n Assets-päätepisteen antamaa desimaalitarkkuutta.

Jatkamalla SHIB/USD-esimerkkiä, Assets-päätepiste osoittaa USD-laskennan tarkkuudeksi 4 (katso edellinen osio yllä), joten paikallisesti laskettu arvo 1,45406823 dollaria tulisi myös pyöristää tai katkaista 4 desimaalin tarkkuuteen:

  • 50 123 x 0,00002901 = 1,45406823 pyöristettynä 4 desimaaliin = 1,4541

Kuten esitetty, pyöristämällä tai katkaisemalla sopivaan desimaalitarkkuuteen, lopullinen arvo 1,4541 dollaria vastaa täsmälleen Ledgers-päätepisteen antamaa arvoa, mikä mahdollistaa paikallisten arvojen onnistuneen yhdistämisen API-arvoihin.

Tarvitsetko lisää apua?