如何将变量类型分配给对象中的变量

时间:2013-08-07 16:59:36

标签: javascript variables var

这是代码

var m = new Object();
m.p1 = 37.7;
m.p2 = 37.7;
...

function addSubtract(pn){
switch (pn) {
    case 1:
        var amt = prompt("Enter a value");
        if (amt != null)
        {
        m.p1 += amt;
        }
    break;
    }
}

基本上当我输入1时,m.p1的值变为37.71而不是38.7

然后我输入1.0并显示37.711.0。我发现它正在连接而不是添加。 我试图找到一种声明类型的方法,但我无法弄清楚如何在对象的变量中使用它。

我更像是一个C ++人,有一些明显我在这里失踪的东西。我在谷歌上找不到它。

那么我必须为它分配一个类型还是有另一种强制算术加法的方法?

3 个答案:

答案 0 :(得分:4)

您需要parseFloat()Number() prompt()返回的字符串。

答案 1 :(得分:2)

prompt()的结果将是一个字符串。如果向字符串添加数字,则该数字将转换为字符串,并将执行连接。

要将字符串转换为float,请使用以下其中一项:

var amt = parseFloat(prompt("Enter a value"));

...或:

var amt = +prompt("Enter a value");

...或:

var amt = Number(prompt("Enter a value"));

请注意,在使用parseFloat()时,最后会忽略任何额外的非数字字符,但在使用一元+方法或Number()时,您将获得NaN如果字符串有额外的字符:

> parseFloat('1.0foo')
1
> +'1.0foo'
NaN
> +'1.0'
1

答案 2 :(得分:1)

if (amt != null) m.p1 += Number(amt);

这可以解决你的问题。