链上合约通常不保存小数,而是保存整数。例如一个代币使用 6 位精度,1.25 个代币在链上会写成 1250000。请先从代币官方资料或区块浏览器确认 decimals,再做换算。
USDT 的 decimals 是多少?同一个币在不同链上不一样
| 代币 | 网络 | decimals | 1 个代币在链上写成 |
|---|---|---|---|
| USDT | 以太坊(ERC20) | 6 | 1000000 |
| USDT | 波场(TRC20) | 6 | 1000000 |
| USDT | BNB 智能链(BEP20) | 18 | 1 后面跟 18 个 0 |
| ETH 以及大多数 ERC20 代币 | 以太坊 | 18 | 1 后面跟 18 个 0 |
2026 年 9 月在 Etherscan、BscScan 的代币页核对。BscScan 上这个 USDT 显示的名字是 Binance-Peg BSC-USD。
BEP20 的 USDT 是 18 位,这一点最容易出错:把 BSC 上读到的原始数字按 6 位去算,会得出一个大得离谱的金额。自己查的方法是在区块浏览器里搜这个代币,进入代币页,Decimals 那一栏就是。
什么时候会用到这个换算
- 看合约交互记录、钱包签名弹窗里的原始数字(比如授权额度),想知道到底是多少个币。
- 开发或调试时,要把用户输入的金额转成合约要的整数。
- 在区块浏览器的日志里看到一串很长的数字,想核对它和页面显示的金额是否一致。
签名弹窗里的授权额度如果换算出来是一个天文数字,那就是“无限授权”。不认识的网站要你这样授权,先别签,原因见DeFi 那篇讲授权的一节。
更新于 2026-09-28。本工具只做本地数学换算,不查询代币合约。decimals 填错,结果也会错。