Binance报价精度超限无法下单:价格和数量怎么取整?
直接结论:price往下取整到tickSize的倍数,quantity也是,别四舍五入。用错方式订单会被系统拒绝。
1. 先搞清楚"精度超限"是哪一种
币安订单被拒,通常是因为价格或数量的小数位超过了该交易对允许的范围,俗称"精度超限"。这个限制由PRICE_FILTER和LOT_SIZE两个过滤器控制。
下单前,先确认你的订单触犯了哪条规则:
价格超限:你设置的价格,小数点后的位数比该交易对允许的tickSize更精细。例如,BTCUSDT的tickSize是0.01,你输入的110384.123就是无效的,因为0.123不是0.01的整数倍。
数量超限:你设置的数量,小数点后的位数比该交易对允许的stepSize更精细。
2. 取整的正确方法:向下取整到步长倍数
不少用户误以为"四舍五入"就行,但交易所要求的是订单参数必须是tickSize或stepSize的整数倍。正确做法是向下取整(舍弃多余小数),这样能保证订单参数合法。
2.1 价格的取整规则
做什么:将价格调整到tickSize的整数倍。
怎么做:假设BTCUSDT的tickSize为0.01,你想以60000.123的价格下单,合法价格应为60000.12(保留到分)。
做到什么程度算完成:确保你提交的价格的小数位数,不超过该交易对规定的精度。
2.2 数量的取整规则
做什么:将数量调整到stepSize的整数倍。
怎么做:假设某代币的stepSize为0.001,你想买100.0005个,合法数量应为100.000(保留到小数点后三位)。
做到什么程度算完成:同样,确保你提交的数量的小数位数合规。
3. 实操:如何获取正确的精度参数
不要再靠猜或者试了,币安提供了官方渠道来查询每个交易对的精确规则。
步骤1:通过 API 获取exchangeInfo信息
做什么:在代码或 Postman 中调用GET /api/v3/exchangeInfo,并指定交易对。
怎么做:请求GET /api/v3/exchangeInfo?symbol=BTCUSDT,返回的 JSON 数据中会包含该交易对的详细过滤器。
做到什么程度算完成:你成功获取到包含PRICE_FILTER和LOT_SIZE的响应。
步骤2:解析关键参数
做什么:从返回结果中提取tickSize和stepSize。
怎么做:
在filters数组中找到PRICE_FILTER,tickSize就是价格的最小增量。
找到LOT_SIZE,stepSize就是数量的最小增量。
做到什么程度算完成:你明确了当前交易对的精度底线。
步骤3:动态调整订单参数
做什么:在下单前,用你程序里的逻辑将价格和数量"裁剪"到合法的值。
怎么做:
计算出价格和数量的小数位数,直接截断到tickSize和stepSize允许的精度。
如果价格/数量低于minPrice/minQty,订单也会被拒,需要一并检查。
做到什么程度算完成:你成功提交了一个不会因精度超限而报错的订单。
常见失败原因
直接用网站显示的价格,但 API 报错说精度过高。这种情况常见于对价格非常敏感的订单,比如ORDI/USDT在2025年5月调整后,价格精度从0.01收窄到了0.001。网站前端已适配,但你的API脚本若未同步更新,仍按旧精度下单就会被拒。
风险提醒:精度规则会调整。如果是自动化交易,不要在代码里写死小数位数。每次启动或定期通过API获取最新规则是更稳妥的做法。
做完以上操作,怎么确认自己取整对了?
提交订单后收到-1111错误码并提示"Parameter '%s' has too much precision",说明你的价格或数量没取整到位。调整后再次提交,直到订单成功进入撮合队列。



