All
筛选:
如何将法定货币存入我的账户?
我需要帮助进行账户验证
为什么无法访问我的账户?
是否有加密货币取款手续费?
我需要帮助登录我的账户
内部 API 计算会根据相关货币的精度使用尽可能多的小数位,但显示值有时会进行四舍五入/截断,以获得可用值或用于格式化目的。
例如,比特币 (BTC) 计算最多使用 10 位小数(BTC 的最大可用精度为 8 位),但有时仅显示 5 位小数。同样,美元 (USD) 计算最多使用 4 位小数(美元的最大可用精度当然是 2 位),但通常仅显示 2 位小数。
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}}}
如上所示,“资产”端点通过 decimals 字段提供计算小数精度,并通过 display_decimals 字段提供显示小数精度。
将本地值与 API 值匹配
从本地计算(例如根据交易价格和数量计算余额变化)得出的值通常具有比所需更多的小数位,需要进行四舍五入/截断以匹配 API 提供的值。
例如,以 0.00002901 美元的价格购买 50,123 SHIB 的 SHIB/USD 订单,交易价值为 1.45406823 美元(50,123 x 0.00002901 = 1.45406823),但 REST API 账本端点显示美元余额减少了精度较低的值 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 资产端点提供的小数精度。
继续 SHIB/USD 的示例,资产端点指示美元计算精度为 4(参见上文),因此本地计算值 1.45406823 美元也应四舍五入/截断为 4 位小数精度:
50,123 x 0.00002901 = 1.45406823 四舍五入到 4 位小数 = 1.4541
如上所示,通过四舍五入/截断到适当的小数精度,最终值 1.4541 美元与账本端点提供的值完全一致,从而成功地将本地值与 API 值匹配。