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