Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用Discord bot将用户消息从十进制转换为十六进制_Javascript_Converter_Discord - Fatal编程技术网

Javascript 尝试使用Discord bot将用户消息从十进制转换为十六进制

Javascript 尝试使用Discord bot将用户消息从十进制转换为十六进制,javascript,converter,discord,Javascript,Converter,Discord,好的,我有这个 Commands.hex = { name: 'hex', help: "I'll convert your steamid for you", timeout: 10, level: 0, fn: function (msg, suffix) { msg.reply('Steam64').then((m) => { m.edit('<@' + msg.author.id + '>, Steam ID Converted:

好的,我有这个

Commands.hex = {
  name: 'hex',
  help: "I'll convert your steamid for you",
  timeout: 10,
  level: 0,
  fn: function (msg, suffix) {
    msg.reply('Steam64').then((m) => {
      m.edit('<@' + msg.author.id + '>, Steam ID Converted: ' + suffix.toString(16)).slice(-2).toUpperCase()
    })
  }
}
Commands.hex={
名称:“十六进制”,
帮助:“我将为您转换您的steamid”,
超时时间:10,,
级别:0,
fn:函数(消息,后缀){
msg.reply('Steam64')。然后((m)=>{
m、 编辑(',转换的蒸汽ID:'+后缀.toString(16)).slice(-2).toUpperCase()
})
}
}
我正试图让它做这个网站做的事情


我只是想把它转换成我的discord机器人,谢谢

事实证明,您的值:76561198262006743远大于
Number.MAX_SAFE_值,即(2^53-1)。这将导致在尝试执行算术时出现未定义的行为

例如,在Google Chrome上,在控制台中键入数字并按enter键时,该值变为76561198262006740(注意,末尾的3变为0),这意味着十六进制转换也不正确

一个简单的解决方案是,因为您已经将该值作为字符串,所以可以执行您自己的十进制->十六进制转换

他可以在这里找到这样一种算法:

Number#toString(16)
dec2hex(String)
的结果进行一个小的比较:
函数dec2hex(str){/.toString(16)最多只能使用2^53
var dec=str.toString().split(“”),sum=[],hex=[],i,s
while(十二月长度){
s=1*12月班次()
对于(i=0;s | | iconsole.log(“toString:+parseInt(num).toString(16))
您认为后缀是什么类型的?如果它是一个字符串,那么我想你必须首先对它调用
parseInt
,因为
toString(16)
只有在后缀已经是整数的情况下才能正常工作。后缀是我相信的用户消息。正如你看到的,上面写着!!hex 76561198205234861@KhauriMcClainYes我理解。但是用户的消息很可能是通过字符串而不是整数传递的,因此对字符串调用
toString(16)
将不起作用<代码>(10)。toString(16)
将返回“a”,但
(“10”)。toString(16)
将返回“10”抱歉,我正在学习尝试此
m.edit(',Steam ID转换为:'+parseInt(后缀)。toString(16))
@Khaurimcclainth已工作,谢谢!