Độ chính xác thập phân cho các phép tính API

Cập nhật lần cuối: 26 thg 6, 2025

Độ chính xác được tính toán so với độ chính xác hiển thị

Các phép tính API nội bộ được thực hiện bằng cách sử dụng số chữ số thập phân cần thiết tùy thuộc vào độ chính xác của loại tiền tệ liên quan, nhưng các giá trị hiển thị đôi khi được làm tròn/cắt bớt để đạt được giá trị có thể sử dụng hoặc cho mục đích định dạng.

Ví dụ, các phép tính Bitcoin (BTC) sử dụng tối đa 10 chữ số thập phân (độ chính xác tối đa có thể sử dụng cho BTC là 8 chữ số), nhưng đôi khi chỉ hiển thị 5 chữ số thập phân. Tương tự, các phép tính Đô la Mỹ (USD) sử dụng tối đa 4 chữ số thập phân (độ chính xác tối đa có thể sử dụng cho USD tất nhiên là 2 chữ số), nhưng thường được hiển thị chỉ với 2 chữ số thập phân.

Điểm cuối REST API Assets có thể được sử dụng để xác định độ chính xác thập phân tối đa cho từng loại tiền tệ:

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

Như đã trình bày, điểm cuối Assets cung cấp độ chính xác thập phân tính toán thông qua các trường decimals, và cung cấp độ chính xác thập phân hiển thị thông qua các trường display_decimals.

 

Đối chiếu giá trị cục bộ với giá trị API

Các giá trị được lấy từ các phép tính cục bộ (chẳng hạn như tính toán thay đổi số dư từ giá và khối lượng giao dịch) thường có nhiều chữ số thập phân hơn mức cần thiết và cần được làm tròn/cắt bớt để khớp với các giá trị do API cung cấp.

Ví dụ, một lệnh SHIB/USD để mua 50.123 SHIB với giá 0,00002901 USD dẫn đến một giao dịch trị giá 1,45406823 USD (50.123 x 0,00002901 = 1,45406823), nhưng điểm cuối REST API Ledgers cho thấy số dư USD giảm với giá trị chính xác nhỏ hơn là 1,4541 USD:

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

Giải pháp cho loại sai lệch độ chính xác thập phân này là làm tròn/cắt bớt các giá trị cục bộ để khớp với độ chính xác thập phân do điểm cuối REST API Assets cung cấp.

Tiếp tục ví dụ SHIB/USD, điểm cuối Assets chỉ ra độ chính xác tính toán USD là 4 (xem phần trước ở trên), do đó giá trị được tính toán cục bộ là 1,45406823 USD cũng nên được làm tròn/cắt bớt đến độ chính xác thập phân là 4:

  • 50.123 x 0.00002901 = 1.45406823 làm tròn đến 4 chữ số thập phân = 1.4541

Như đã trình bày, bằng cách làm tròn/cắt bớt đến độ chính xác thập phân thích hợp, giá trị cuối cùng là 1,4541 USD tương ứng chính xác với giá trị do điểm cuối Ledgers cung cấp, cho phép các giá trị cục bộ được đối chiếu thành công với các giá trị API.

Bạn cần thêm trợ giúp?