ความแม่นยำของทศนิยมสำหรับการคำนวณ API

อัปเดตล่าสุด: 26 มิถุนายน 2568

ความแม่นยำที่คำนวณได้เทียบกับความแม่นยำที่แสดง

การคำนวณ API ภายในดำเนินการโดยใช้ทศนิยมจำนวนมากเท่าที่จำเป็นขึ้นอยู่กับความแม่นยำของสกุลเงินที่เกี่ยวข้อง แต่ค่าที่แสดงบางครั้งจะถูกปัดเศษ/ตัดทอนเพื่อให้ได้ค่าที่ใช้งานได้หรือเพื่อวัตถุประสงค์ในการจัดรูปแบบ

ตัวอย่างเช่น การคำนวณ Bitcoin (BTC) ใช้ทศนิยมสูงสุด 10 ตำแหน่ง (ความแม่นยำสูงสุดที่ใช้งานได้สำหรับ BTC คือ 8 ตำแหน่ง) แต่บางครั้งจะแสดงโดยใช้ทศนิยมเพียง 5 ตำแหน่ง ในทำนองเดียวกัน การคำนวณ US Dollar (USD) ใช้ทศนิยมสูงสุด 4 ตำแหน่ง (ความแม่นยำสูงสุดที่ใช้งานได้สำหรับ USD คือ 2 ตำแหน่ง) แต่มักจะแสดงโดยใช้ทศนิยมเพียง 2 ตำแหน่ง

สามารถใช้ปลายทาง Assets ของ REST API เพื่อกำหนดความแม่นยำของทศนิยมสูงสุดสำหรับสกุลเงินแต่ละสกุลได้:

$ ./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 ให้มา

ตัวอย่างเช่น คำสั่งซื้อ SHIB/USD เพื่อซื้อ SHIB 50,123 หน่วยที่ราคา $0.00002901 ส่งผลให้มีการซื้อขายมูลค่า $1.45406823 (50,123 x 0.00002901 = 1.45406823) แต่ปลายทาง Ledgers ของ REST API แสดงให้เห็นว่ายอดคงเหลือ 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"}

วิธีแก้ปัญหาความคลาดเคลื่อนของความแม่นยำของทศนิยมประเภทนี้คือการปัดเศษ/ตัดทอนค่าในเครื่องเพื่อให้ตรงกับความแม่นยำของทศนิยมที่ปลายทาง Assets ของ REST API ให้มา

จากตัวอย่าง SHIB/USD ปลายทาง Assets ระบุความแม่นยำในการคำนวณ USD เป็น 4 (ดูส่วนก่อนหน้าด้านบน) ดังนั้นค่าที่คำนวณในเครื่องคือ $1.45406823 ควรถูกปัดเศษ/ตัดทอนให้มีความแม่นยำของทศนิยม 4 ตำแหน่งเช่นกัน:

  • 50,123 x 0.00002901 = 1.45406823 ปัดเศษเป็น 4 ตำแหน่ง = 1.4541

ดังที่แสดง การปัดเศษ/ตัดทอนให้มีความแม่นยำของทศนิยมที่เหมาะสม ทำให้ค่าสุดท้ายที่ $1.4541 ตรงกับค่าที่ปลายทาง Ledgers ให้มาอย่างแม่นยำ ทำให้สามารถจับคู่ค่าในเครื่องกับค่า API ได้สำเร็จ

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่