API 계산을 위한 소수점 정밀도

최종 업데이트: 2025년 6월 26일

계산된 정밀도와 표시된 정밀도

내부 API 계산은 해당 통화의 정밀도에 따라 필요한 만큼의 소수점 이하 자릿수를 사용하여 수행되지만, 표시되는 값은 사용 가능한 값을 얻거나 서식 지정 목적으로 때때로 반올림/절사됩니다.

예를 들어, Bitcoin (BTC) 계산은 최대 10자리 소수점 이하 자릿수를 사용하지만 (BTC의 최대 사용 가능한 정밀도는 8자리), 때로는 5자리 소수점 이하 자릿수만 사용하여 표시됩니다. 마찬가지로, 미국 달러 (USD) 계산은 최대 4자리 소수점 이하 자릿수를 사용하지만 (USD의 최대 사용 가능한 정밀도는 물론 2자리), 종종 2자리 소수점 이하 자릿수만 사용하여 표시됩니다.

REST API Assets 엔드포인트를 사용하여 개별 통화의 최대 소수점 정밀도를 확인할 수 있습니다.

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

보시다시피, Assets 엔드포인트는 `decimals` 필드를 통해 계산 소수점 정밀도를 제공하고, `display_decimals` 필드를 통해 표시 소수점 정밀도를 제공합니다.

 

로컬 값과 API 값 일치시키기

로컬 계산에서 파생된 값(예: 거래 가격 및 거래량에서 잔액 변경 계산)은 종종 필요한 것보다 더 많은 소수점 이하 자릿수를 가지므로, API에서 제공하는 값과 일치하도록 반올림/절사해야 합니다.

예를 들어, $0.00002901에 50,123 SHIB를 매수하는 SHIB/USD 주문은 $1.45406823 (50,123 x 0.00002901 = 1.45406823) 상당의 거래를 발생시키지만, REST API Ledgers 엔드포인트는 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"}

이러한 유형의 소수점 정밀도 불일치에 대한 해결책은 REST API Assets 엔드포인트에서 제공하는 소수점 정밀도에 맞게 로컬 값을 반올림/절사하는 것입니다.

SHIB/USD 예시를 계속하면, Assets 엔드포인트는 USD 계산 정밀도가 4임을 나타내므로 (위의 이전 섹션 참조), 로컬에서 계산된 $1.45406823 값도 소수점 정밀도 4로 반올림/절사되어야 합니다.

  • 50,123 x 0.00002901 = 1.45406823 (소수점 4자리로 반올림) = 1.4541

보시다시피, 적절한 소수점 정밀도로 반올림/절사함으로써 최종 값인 $1.4541은 Ledgers 엔드포인트에서 제공하는 값과 정확히 일치하며, 로컬 값을 API 값과 성공적으로 일치시킬 수 있습니다.

더 많은 도움이 필요하신가요?