Есть ли функция для считывания питания ERC20 и выдачи на выходе числа без десятичных знаков? - PullRequest
0 голосов
/ 02 февраля 2019

В моей предыдущей публикации я узнал, как разрешить пользователю вводить число токенов ERC20 и возвращать значение с количеством десятичных знаков.

Скажем, что число десятичных знаков для ERC20 равно 4, а пользователь вводит 1,5, мы покажем им 1,5000 с помощью .toFixed(4).

Сейчас я пытаюсь использовать обратный подход (больше информации после кода), однако кажется, что нет никаких функций, таких как «fromFixed».Например, я читаю общее предложение с помощью web3js

checkBalance = async event => {
    try {
      const balance = await smartContract.methods.balanceOf(event).call();
      console.log(balance)
    } catch (err) {
      let error= 'Address Error';
      console.log(error)
    }
  };

. Предполагая, что у вас есть 10k ERC20, код выше будет отображаться в выходных данных 100000000 (что составляет 10 000,0000).Я хочу показать результат с добавленной точкой для последних 4 десятичных знаков, поэтому просто 10000.0000 (10,000.0000).

Я пытался balance.toFixed(4)

, однако вывод еще хуже, потому что я получаю 1000000000000 (10 000,0000.0000) `

Я пытался console.log(web3.fromWei(balanceOf, 'ether'));, ожидая, что он будет преобразованк 18 десятичным числам Ethereum, и результат будет примерно 10 000.000000000000000000

Это никогда не работает в функции 'checkBalance', так как она всегда ловит ошибку.

1 Ответ

0 голосов
/ 04 февраля 2019

Мне кажется, что это больше связано с отображением чисел, чем с эфириумом в целом.В любом случае, если вы хотите отобразить, скажем, 10000 как 10.000, поэтому, используя четыре десятичных знака, вы можете сделать x=10000/1000;console.log(x.toFixed(4)).В более общем плане, для отображения числа n с использованием другого количества десятичных знаков d вы можете сделать: x=n/(10^d);console.log(x.toFixed(d))

...