【问题标题】:Calculate two number in UTF-8 get NaN in Node.js在 UTF-8 中计算两个数字在 Node.js 中得到 NaN
【发布时间】:2016-01-19 13:57:49
【问题描述】:

我在 Node.js 中使用 Socket 来获取数据并使用 utf8 格式将它们保存在缓冲区中。这些数据是数字,我想做一些计算但结果是 NaN。

var client = new net.Socket();
client.connect(PORT, HOST, function() {
    var commandstr = new Buffer("A5021E", "hex") 
    client.write(commandstr);
});

client.on('data', function(data) {
    var buff = new Buffer(data, 'utf8');
    ProcessBuffer(buff);
    client.destroy();
});

client.on('close', function() {
    console.log('Connection closed');
});

ProcessBuffer = function(recv_msg){
    var bp_s = recv_msg.toString('utf8').substring(65, 69); 

    console.log(parseInt(bp_s + 5)); //Do the calculation here and return in NaN
}

【问题讨论】:

  • bp_s 是一个字符串,而不是数字
  • 那么如何将bp_s转换为数字并进行计算呢?

标签: javascript node.js utf-8


【解决方案1】:

您需要将 bp_s 变量(字符串)转换为数字,然后再将其添加到 5。

您可以使用parseInt函数[1]:parseInt(bp_s)

所以,你的最后一行是:

console.log(parseInt(bp_s) + 5);

请注意,parseInt 函数还允许您定义数字的基数,作为该函数的第二个参数。默认为 10。

[1]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2014-10-19
    • 1970-01-01
    • 2023-02-04
    相关资源
    最近更新 更多