摘要:对照 ethereum.org 中文 ERC-20 的 decimals(),用 Etherscan「WITH 6/18 DECIMALS」认 USDT 与 WETH,并用只读 eth_call 核对。和 Gwei 单位文分工。
钱包或浏览器里突然出现一长串「000000」,新手常以为转错了或少了很多零。站内已有 Gwei 是什么 讲手续费单位。本篇只讲代币小数位(decimals):合约里一个整数,用来把链上「最小单位」换算成你看到的 1 USDT / 1 WETH。不讲行情,也不教你「怎么炒币」。
一、官方:ERC-20 里有个 decimals()
打开 ethereum.org 中文「ERC-20 代币标准」。文档列出标准方法,其中一行是:
function decimals() public view returns (uint8)
意思很直白:合约告诉你「显示时要除以 10 的几次方」。它返回一个很小的整数(常见 6 或 18),不是余额本身。

二、浏览器怎么认:USDT 写着 6 Decimals
打开 Etherscan 上以太坊主网 USDT Token 页。页眉常见写法:TOKEN CONTRACT (WITH 6 DECIMALS),旁边是合约地址 0xdAC17F95…831ec7。一句话:链上记的是整数;你看到的「1 USDT」= 链上数量 ÷ 106。
所以如果某笔 Transfer 的 raw 是 240973065,换算是 240.973065 USDT——那串数字里「后面很多 0」是最小单位,不是你少收了六个零的「整币」。

三、对照:WETH 是 18 Decimals
同一浏览器打开 WETH(Wrapped Ether)Token 页,页眉是 TOKEN CONTRACT (WITH 18 DECIMALS)。这和 ETH 本身常用的 18 位小数一致:1 WETH = 1018 个最小单位。USDT 用 6、WETH 用 18——ticker 不同,小数位可以不同,不要拿一个币的位数套到另一个币上。

四、中文浏览器也能看(OKLink)
更习惯中文时,可用 OKLink 以太坊浏览器打开同一 USDT 合约。页上会显示合约、转账列表与数量列(数量已按该代币小数位格式化展示;具体字段名以当时页面为准)。充值前仍要和交易所给出的合约地址逐字核对,见 代币合约地址是什么。

五、和链上核对:eth_call 读 decimals()
不信任页眉时,可对公开 RPC 做只读 eth_call,调用选择器 0x313ce567(即 decimals())。本场对 https://1rpc.io/eth 实跑:
- USDT → 6
- WETH → 18
应与浏览器「WITH N DECIMALS」一致。全程不需要钱包;需要钱包时可试用欧易 Web3(创建步骤可填 CHENGXULVTU)。

六、新手怎么少踩坑
| 容易混的点 | 正确理解 |
|---|---|
| 链上很大一串 0 | 多半是最小单位;先查 decimals 再 ÷ 10ⁿ |
| USDT 和 WETH 位数一样吗 | 不一样:本场浏览器/RPC 为 6 vs 18 |
| 和 Gwei 什么关系 | Gwei 是 ETH 手续费单价单位;decimals 是代币显示精度 |
| 跨链同名 USDT | 每条链合约不同,decimals 也要以该链合约为准 |
Etherscan「WITH N DECIMALS」就是 N。
显示余额 ≈ raw / 10^decimals。
假币也可能写 decimals;合约地址要以官网/交易所为准。
- 在 ethereum.org 中文 ERC-20 页找到
decimals()。 - 打开真 USDT / WETH Token 页,认 WITH 6 / WITH 18。
- 需要时用 eth_call 再核一次。
- 若要在交易所买少量 ETH 付 Gas,可在 币安 或 欧易——与认 decimals 无关。
相关阅读
说明:配图为 2026-10-15 ethereum.org 中文 ERC-20 方法表、Etherscan USDT/WETH「WITH N DECIMALS」、OKLink 中文 USDT 页、本机真实 eth_call 输出。持仓数、价格会变;decimals 以合约为准。本文不构成投资建议。