你账户里明明有 100 U,下个买单却提示"余额不足"——不是平台出 bug 了,是你没把手续费算进去。
币安现货交易的手续费是直接从你购买的那个币里扣的。如果你手里刚好 100 U,想买 100 U 的 BTC,系统在成交的时候会从你得到的 BTC 里扣掉手续费,但问题是——下单那一刻,系统得先确认你账户里的 USDT 够支付"币款+手续费"的总额,而手续费它要的是你买入的那个币,不是 USDT。
它卡住的原因就在这里。
手续费预留怎么查
① 确认你用的是 USDT 还是 BNB 付手续费
默认状态下,现货交易手续费是用你买入的那个币来支付的。也就是说,你买 BTC,手续费扣 BTC;你卖 BTC,手续费扣 USDT。
如果你在"账户设置"里开启了"使用 BNB 支付手续费",并且现货账户里至少有 0.1 BNB,那手续费就可以用 BNB 来扣,还能打 7.5 折(现货 25% off)。但如果开了这个开关,BNB 余额又不够,系统会直接报余额不足,哪怕你有足够的 USDT。
[做什么]:检查你现在用哪种方式在付手续费。
[怎么做]:
打开币安 App/网页 → 右上角头像 → "用户中心" → "账户设置" → 找到"使用 BNB 支付交易手续费"开关,看是开还是关。
如果开了,去"资产" → "现货账户"里看一眼 BNB 的"可用"余额是不是大于 0。
[完成标准]:你知道自己当前用的是哪种扣费方式,以及 BNB 余额是否够用。
② 估算你这笔单子的手续费需要预留多少
默认费率:普通用户的现货 Maker 和 Taker 费率都是 0.1%。
举例:你拿 100 USDT 买 BTC,按 0.1% 算,手续费应该是 0.1 USDT 等值的 BTC。但系统在下单时判断"余额"用的是你账户里的 USDT 总额,它要确保币款+手续费(按市价折算成 USDT)之后还能覆盖。最稳妥的做法:不要把账户里的 USDT 全部挂进去,留 1-2 U 的零头做缓冲。
[做什么]:下单时留出足够的手续费余量。
[怎么做]:用 "买入金额 × 0.1%" 算出手续费的 USDT 等值,下单金额不要超过"可用余额 - 手续费等值"。或者直接点系统给的 75%、50% 按钮,不要手动填满。
[完成标准]:你确认这笔单子下单后,账户里还有 USDT 余额,而不是刚刚好等于订单金额。
BNB 折扣的坑:用了 BNB 抵扣,手续费是打 75 折了,但下单时系统是先预留足额手续费再执行。BNB 余额不够,单子直接报错,不会自动切回 USDT 扣费。平时留意一下 BNB 余额。
三个常见报错场景
开了 BNB 抵扣但 BNB 不够:关掉"使用 BNB 支付手续费"开关,或者先买点 BNB 进去。
USDT 余额刚好等于订单金额:留 1-2 U 做缓冲,别填满。
钱在资金账户或合约账户:币安的钱包是分仓的,现货交易只能用"现货账户"里的钱。先去"资产"页面把资金划转到现货账户。
提现手续费和交易手续费是两回事。提现是按笔收固定 Gas 费(不同币种、不同链收费不同),跟交易手续费不是一个扣法。
操作完成的校验方式
做完上面两步,去"订单" → "现货订单历史"里点开最新一笔成交单。在费用栏看它是显示"BNB 抵扣:已启用"还是扣了你买入的那个币。如果实际扣费和你的预期不一致,回到账户设置里检查 BNB 支付开关的状态。



