Javascript 如何在结果处将随机数作为数字添加到存储的变量中,而不是将两个字符串相加?

Javascript 如何在结果处将随机数作为数字添加到存储的变量中,而不是将两个字符串相加?,javascript,Javascript,这是我做的一个愚蠢的实验,基本上是想用一个修改器生成一个D&D风格的攻击骰。我想添加数字,但javascript一直将数字作为字符串添加。我不知道如何完成基本的数学。。。。。这是我的密码- function battle() { var CS = document.battleForm.playerCS.value; var D20 = Math.ceil(Math.round(Math.random() * 20)) v

这是我做的一个愚蠢的实验,基本上是想用一个修改器生成一个D&D风格的攻击骰。我想添加数字,但javascript一直将数字作为字符串添加。我不知道如何完成基本的数学。。。。。这是我的密码-

        function battle()
    {
        var CS = document.battleForm.playerCS.value;
        var D20 =  Math.ceil(Math.round(Math.random() * 20))
        var attackRoll = CS + D20

        if (isNaN(CS))
        {
            alert ("please provide your Combat Score!")
            return
        }
        if (CS != '')
        {
            document.battleForm.enemyCS.value = attackRoll 
        }
    }
任何表单文本的值都是字符串,因此需要将其转换为数字


任何表单文本的值都是字符串,因此需要将其转换为数字。

要确保两个数字相加,请尝试:

var num3 = +num1 + (+num2);
这可能比使用
parseInt
parseFloat
更可取,原因有二:

  • +
    将转换任何数字(也就是说,整数和浮点不需要不同的方法)
  • 如果任一值不可转换,
    +
    将失败
    parseInt
    parseFloat
    忽略变量中的任何尾随文本。例如,
    parseInt(“10px”,10)
    产生
    10
    ,而
    (+“10px”)
    产生
    NaN

要使用什么取决于您自己。

要确保两个数字相加,请尝试:

var num3 = +num1 + (+num2);
这可能比使用
parseInt
parseFloat
更可取,原因有二:

  • +
    将转换任何数字(也就是说,整数和浮点不需要不同的方法)
  • 如果任一值不可转换,
    +
    将失败
    parseInt
    parseFloat
    忽略变量中的任何尾随文本。例如,
    parseInt(“10px”,10)
    产生
    10
    ,而
    (+“10px”)
    产生
    NaN

你想用什么取决于你自己。

CS
是一个字符串;使用
parseFloat
或一元加
CS
为字符串;使用
parseFloat
或一元加号