javascript中字符串到数字的转换
我有一个函数,它有以下几行:javascript中字符串到数字的转换,javascript,Javascript,我有一个函数,它有以下几行: payementReceived=data.toJSON().total; paymentTotal=$("#paymentTotal").html(); console.log(typeof(parseInt(paymentTotal))); console.log(typeof(parseInt(paymentReceived))); console.log(parseInt(paymentTotal)-parseInt(p
payementReceived=data.toJSON().total;
paymentTotal=$("#paymentTotal").html();
console.log(typeof(parseInt(paymentTotal)));
console.log(typeof(parseInt(paymentReceived)));
console.log(parseInt(paymentTotal)-parseInt(paymentReceived));
我在控制台中得到以下信息
number
number
NaN
我不明白如果两者都是数字,那么为什么它不能给出正确的减法结果。值是
number
,因为它们的内容是一个数字,但这并不意味着该数字是有效的
typeof NaN === 'number'
如果从减法中得到一个
NaN
,则一个或两个输入值都是无效数字。问题在于,如果您确定结果是一个可以始终使用的数字,则使用“paymentReceived”的未定义变量
console.log(parseInt(paymentTotal)-parseInt(payementReceived));
试试下面的代码
控制台日志(编号(paymentTotal)-编号(PaymentReceived)) 只是一个有趣的想法:
if (typeof n === "number" && n+1 !== n) {
// this is a valid number
}
无效+1仍将无效,因此它可以检查无效的数字。
newnumber()
,而不仅仅是Number()
。或者更确切地说-parseInt(xxx,10)
typeof(NaN)==“number”
因为NaN
值也是number
类型?请注意,当使用parseInt
时,应始终将10
作为第二个参数(否则以0开头的数字将被读取为基数8!)是因为打字错误吗??“paymentReceived”而不是“paymentReceived”