Solidity
智能合約中的 ERC20 小數
我將如何告訴 EVM 和錢包有關小數的資訊?他們會自動從建構子中讀取它嗎???
如此處所述,
decimals
ERC20 代幣中的 僅用於向使用者表示。EVM 與它無關。辨識 ERC20 代幣並知道代幣有多少位小數(通過呼叫decimals()
函式)的錢包可以以更易讀的方式向使用者表示代幣的數量。你知道 Solidity 不支持浮點數,所以我們用 a 中的
uint
一些數字來表示浮點數,將它們視為“小數”。例如,如果您有一個需要允許 2 個小數精度的自定義令牌,那麼您可以將數字表示
5.34
為534
Solidity 中的數字,並有一個狀態變數或函式decimals()
返回該值2
,讓我們知道534
實際上有 2 個小數是最後一個,然後我們可以在前端顯示使用者5.34
。查看 OpenZeppelin
ERC20
decimals()
函式的文件:https ://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol#L87