您可以将输入类型 "number" 用于任意精度小数吗?

Can you use input type "number" for arbitrary precision decimals?

我希望能够处理从 e-18 (0.000000000000000001) 到 e4 (10,000) 的数字,并对这些输入进行算术运算而不会出现舍入错误。所以我不能使用 JavaScript 原生的 64 位双精度数字,因为它只有 9e15 的安全范围,我需要 1e22.

的范围

我可以将 HTML 输入类型 number 与适当的 JavaScript 结合使用吗?还是应该改用 text

非常感谢一些代码示例和 npm 库来帮助我解决这个问题。

1) HTML 个输入元素,总是return 输入的value 的字符串表示。

2) 为了安全地处理大数字,您可以根据需要使用 ES6 BigInt or if you want full cross-browser support, you can use a library such as big.js, bignumber.js or decimal.js

3) 您可能还想看看这个 valueAsNumber property of the HTML input element (type=number). Beware of support issues

底线:您将始终通过 value 属性 获取在输入字段中输入的字符串数据类型的值,并且您必须对其进行解析本机或使用上面提到的 JS 库。


JavaScript:

中有关数字和处理数字的有用链接