Solidity
ganache 測試返回字元而不是數字
mapping(uint256 => uint256) public amount; function saveAmount(uint256 _id, uint256 _amount) public { amount[_id] = _amount; }
我有一個可以節省映射數量的功能。當我使用 ganache 進行測試時,我得到了一個奇怪的字元值。例如,
instance.saveAmount(1, 100000, {from: account[1]})
然後,查看金額,
instance.amount(1)
產生國陣:186a0
為什麼不顯示100000?
該呼叫將十六進制值作為一個大數字返回。
0x186a0
十六進制是100000
十進制。這是一個很大的數字,因為以這種格式處理 ETH 值更容易。
要從呼叫中獲取數字表示,您應該執行以下操作:
var amount = instance.amount(1) console.log(Number(amount))