将字符串转换为整数时出错

Chr*_*ian 2 html javascript parseint node.js ecmascript-6

嘿伙计我在Javascript中解析字符串有问题.我有一个很大的数字(162778063615164416)作为一个字符串.这就是不和谐的用户ID的样子.现在我正在尝试将其转换为数字,但它总是返回错误的值.

运行代码段以查看它.

var qs = 'querySelector',
    qsa = 'querySelectorAll';
document[qs]('input').addEventListener('input', event => {
  var val = event.target.value;
  document[qsa]('td')[0][qs]('input').value = parseInt(val);
  document[qsa]('td')[1][qs]('input').value = Number(val);
  document[qsa]('td')[2][qs]('input').value = eval(val);
})
Run Code Online (Sandbox Code Playgroud)
<table style="border: solid 1px">
  <thead>
    <tr>
      <th colspan="3"><input value="162778063615164416" style="width:98%; text-align: center"></th>
    </tr>
    <tr>
      <th>parseInt()</th>
      <th>Number()</th>
      <th>eval()</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><input id="parse" style="text-align: center" value="162778063615164400" disabled></td>
      <td><input id="number" style="text-align: center" value="162778063615164400" disabled></td>
      <td><input id="eval" style="text-align: center" value="162778063615164400" disabled></td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我使用了三种不同的方法来做同样的事情,它们都返回了错误的值.输出值应与输入值相同.任何人都知道,如何将这个长度的字符串转换为数字?

我正在使用Discord API for Node.js来创建一个selfbot.用户向频道发送消息,并且程序应该读取用户ID以识别它应该回复的唯一一个人.我无法在程序代码中编写ID,因为它的动态:我想将它打包成.exe,其他人(不知道JavaScript或不想安装Node.js的人)可以使用它也可以发送嵌入物并做其他很酷的东西.

Gré*_*EUT 6

根据文件.

MAX_SAFE_INTEGER常量的值为9007199254740991


您应该问问自己为什么要将其转换为数字.你想比较它们吗?你可以比较Strings.你想寻找特殊的价值观吗?你可以使用Regexp Strings.