JavaScript-尝试分割变量时接收NAN
请签出我的代码:JavaScript-尝试分割变量时接收NAN,javascript,jquery,Javascript,Jquery,请签出我的代码: var BasicPrice = NewPrice.substring(0, NewPrice.indexOf('лв.')); var HalfPrice = (Number.BasicPrice)/2; alert(HalfPrice); 我收到一个输出NaN,但当我发出警报时(BasicPrice)我收到一个像83.25这样的输出,这是一个正确的数字,但为什么它不能正确地分割它呢 我的错误在哪里,我怎样才能改正 提前谢谢 您确定BasicPrice属于类型编号吗 尝试:
var BasicPrice = NewPrice.substring(0, NewPrice.indexOf('лв.'));
var HalfPrice = (Number.BasicPrice)/2;
alert(HalfPrice);
我收到一个输出NaN
,但当我发出警报时(BasicPrice)
我收到一个像83.25
这样的输出,这是一个正确的数字,但为什么它不能正确地分割它呢
我的错误在哪里,我怎样才能改正
提前谢谢 您确定BasicPrice属于类型编号吗 尝试:
console.log(typeof(BasicPrice))
并查看BasicPrice是否属于“number”类型。如果没有,您可以使用以下命令将其从(我猜)字符串转换为数字:
var numInstance = parseFloat(BasicPrice)
从您的代码来看,您使用的是
(Number.BasicPrice)
,我认为这是错误的。它正在查找Number
的BasicPrice
属性
var BasicPrice = NewPrice.substring(0, NewPrice.indexOf('лв.'));
var HalfPrice = parseFloat(BasicPrice)/2;
尝试对算术运算进行验证,尤其是对类型未知的变量或松散类型的语言。以下是有关的文档参考。另外,看看Google关于变量命名约定的介绍。卡米尔凯斯
var BasicPrice = NewPrice.substring(0, NewPrice.indexOf('лв.'));
// because its substring(), conversion may require
// ie. isInteger(), is typeOf(x) === 'number', parseInt(string)
var HalfPrice = (Number.BasicPrice)/2;
alert(HalfPrice);
只需在表达式前面加一个加号(
+
)即可将其转换为数字类型
var BasicPrice = +NewPrice.substring(0, NewPrice.indexOf('лв.'));
var HalfPrice = BasicPrice/2;
alert(HalfPrice);
您不需要任何转换。此外,您还试图将BasicPrice作为Number的属性进行访问,这在语法上是错误的 试试这个-
var BasicPrice = NewPrice.substring(0, NewPrice.indexOf('лв.'));
var HalfPrice = BasicPrice/2;
alert(HalfPrice);
Number.BasicPrice正在查找Number对象的BasicPrice属性,该属性很可能未定义。是否确定BasicPrice的类型为Number?尝试:
console.log(typeof(BasicPrice))
并查看BasicPrice是否属于“number”类型。您正在使用var
定义BasicPrice
,它现在怎么可能是number
的属性。另外,子字符串
返回一个字符串,而不是一个数字,将其包装在()
中将对其求值,但不会将其转换为数字。无法分割字符串。看起来您希望Number.BasicPrice
将BasicPrice
转换为数字;Javascript不是这样做的。查看如何解决这个问题的答案,但我认为这就是困惑的根源所在,因为不需要使用()
周围的parseFloat
。我喜欢这种方式。值得注意的是,如果是空字符串,则值为0