Ketepatan perpuluhan untuk pengiraan API

Terakhir dikemas kini: 26 Jun 2025

Ketepatan dikira berbanding dipaparkan

Pengiraan API dalaman dilakukan menggunakan seberapa banyak tempat perpuluhan yang diperlukan bergantung pada ketepatan mata wang yang berkenaan, tetapi nilai yang dipaparkan kadangkala dibundarkan/dipotong untuk mencapai nilai yang boleh digunakan atau untuk tujuan pemformatan.

Sebagai contoh, pengiraan Bitcoin (BTC) menggunakan sehingga 10 tempat perpuluhan (ketepatan maksimum yang boleh digunakan untuk BTC ialah 8 tempat), tetapi kadangkala dipaparkan menggunakan hanya 5 tempat perpuluhan. Begitu juga, pengiraan Dolar AS (USD) menggunakan sehingga 4 tempat perpuluhan (ketepatan maksimum yang boleh digunakan untuk USD sudah tentu 2 tempat), tetapi sering dipaparkan menggunakan hanya 2 tempat perpuluhan.

Titik akhir API REST Assets boleh digunakan untuk menentukan ketepatan perpuluhan maksimum untuk mata wang individu:

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

Seperti yang ditunjukkan, titik akhir Assets menyediakan ketepatan perpuluhan pengiraan melalui medan decimals, dan menyediakan ketepatan perpuluhan paparan melalui medan display_decimals.

 

Memadankan nilai tempatan dengan nilai API

Nilai yang diperoleh daripada pengiraan tempatan (seperti mengira perubahan baki daripada harga dan volum dagangan) sering mempunyai lebih banyak tempat perpuluhan daripada yang diperlukan, dan perlu dibundarkan/dipotong untuk memadankan nilai yang disediakan oleh API.

Sebagai contoh, pesanan SHIB/USD untuk membeli 50,123 SHIB pada $0.00002901 menghasilkan dagangan bernilai $1.45406823 (50,123 x 0.00002901 = 1.45406823), tetapi titik akhir Ledgers API REST menunjukkan bahawa baki USD berkurangan sebanyak nilai ketepatan yang lebih kecil iaitu $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"}

Penyelesaian kepada jenis percanggahan ketepatan perpuluhan ini adalah untuk membundarkan/memotong nilai tempatan agar sepadan dengan ketepatan perpuluhan yang disediakan oleh titik akhir Assets API REST.

Meneruskan contoh SHIB/USD, titik akhir Assets menunjukkan ketepatan pengiraan USD sebanyak 4 (lihat bahagian sebelumnya di atas), oleh itu nilai yang dikira secara tempatan sebanyak $1.45406823 juga harus dibundarkan/dipotong kepada ketepatan perpuluhan 4:

  • 50,123 x 0.00002901 = 1.45406823 dibundarkan kepada 4 tempat = 1.4541

Seperti yang ditunjukkan, dengan membundarkan/memotong kepada ketepatan perpuluhan yang sesuai, nilai akhir $1.4541 sepadan tepat dengan nilai yang disediakan oleh titik akhir Ledgers, membolehkan nilai tempatan dipadankan dengan nilai API dengan jayanya.

Perlu bantuan lebih lanjut?