0
关注
0
关注者

币安实盘数字精度出现的bug

创建于: 2021-07-15 23:39:47, 更新于:
comments   11
hits   892

下面是未成交订单返回的信息 [{“Info”:{“symbol”:“ALICEUSDT”,“status”:“PARTIALLY_FILLED”,“clientOrderId”:“x-PtW46NoE_20FD0D3794C8F944”,“executedQty”:“1.3”,“cumQuote”:“10.4819”,“type”:“LIMIT”,“reduceOnly”:false,“orderId”:708818902,“price”:“8.063”,“avgPrice”:“8.0630”,“origQty”:“11.6”,“closePosition”:false,“time”:1626332174412,“side”:“SELL”,“workingType”:“CONTRACT_PRICE”,“priceProtect”:false,“updateTime”:1626332174485,“timeInForce”:“GTC”,“positionSide”:“SHORT”,“stopPrice”:“0”,“origType”:“LIMIT”},“Id”:“708818902”,“Price”:8.063,“Amount”:11.6,“DealAmount”:1.3,“AvgPrice”:8.063,“Status”:0,“Type”:1,“Offset”:0,“ContractType”:“swap”}]

上面显示的是挂单数量为11.6,但只成交1.3个,然后再次卖出未成交的数量 但是两个数字srvOrder.Amount - srvOrder.DealAmount相减得出竟然得出 10.299999999999,而不是10.3 导致出现下面的精度溢出错误

Sell(8.054, 10.299999999999): 400: {“code”:-1111,“msg”:“Precision is over the maximum defined for this asset.”}

使用语言是JavaScript

更多内容
全部留言
avatar of 17602119359
17602119359
/upload/asset/185ac34677b649d192c6e.jpg 同样也出现了这个问题, 论坛里好像就你提了问题, 正在一脸懵逼中, 求问怎么解决的~
2021-07-25 21:23:47
avatar of AAA386
AAA386
轮询要多调精度,有的币种exchangeinfo调取都是错的,重新创建数组,添加进去吧
2021-07-16 14:14:09
avatar of 小草
小草
是的, js,python都会出现这个问题,下单前再取下精度
2021-07-16 10:22:09
avatar of czrui
czrui
一个有趣的精度bug :Log(0.056+0.52)
2021-11-16 19:43:31
avatar of 小草
小草
麦语言参数里可以设置精度
2021-08-05 09:31:05
avatar of ouroboros
ouroboros
麦语言也遇到同样的问题,请问怎么解决呢
2021-08-04 22:37:44
avatar of 17602119359
17602119359
牛逼, 感谢 我试下 瑞思拜
2021-07-25 22:28:33
avatar of leemon
leemon
精度溢出了,比如你这个价格126.0783的小数点有四位,但是该币种可能最多只支持最多三位,那就报错了,建议APP上看下这个币种的小数点是多少位,用函数_N()截取就行了
2021-07-25 22:15:59
avatar of 小草
小草
大数会有问题,建议用字符串保存。原因你可以搜一下
2021-07-16 18:15:08
avatar of leemon
leemon
精度可以调,但如果截取的话本来买10.3就截取成了10.2,exchangeinfo调取错误暂时没遇到过
2021-07-16 18:02:40
avatar of leemon
leemon
为什么会出现这种bug呢?数据库存取数据也有问题,比如1626332174485这数值存入数据库,后台用Sqlite命令看数值没问题,但用代码读取出来这数值就变成了如1626332174380,后面几位数变了,数据库存取大数值基本都有这问题
2021-07-16 17:58:19