将 JavaScript 数字渲染为 solidity ERC20 小数

Render JavaScript number as solidity ERC20 decimals

当您在 solidity 中创建 ERC20 加密货币时,您会使用小数位数对其进行初始化。如果您的总供应量为 10k,小数位数为 4,则您的代币供应量将显示为 100000000 (10,000.0000)。

在 Solidity 中,您只需执行 YourNumber*10**4 来初始化一个数字,例如 10,000.0000,其中 YourNumber = 10,000

我想在 JavaScript 中做一个简单的计算器,根据用户输入,我们以令牌的小数形式为他们提供输入。

假设最大小数位数为4,用户输入250,000,我们将显示为250,000.0000。如果用户输入 1,我们将显示 1.0000。但是,如果用户输入 25.5,我们将向他们显示 25.5000 不幸的是,此逻辑在 JavaScript 或我知道的任何其他编程语言中不起作用

let converted = (this.state.conversion)*(10**14);

有哪些可能的解决方案?

我想你要找的是Number.prototype.toFixed

var a = 250000, b = 1, c = 25.5

console.log(a.toFixed(4), b.toFixed(4), c.toFixed(4))

如果您需要逗号分隔符,Intl.NumberFormat:

console.log(new Intl.NumberFormat('en-GB', { useGrouping: true, minimumFractionDigits: 4 }).format(250000))