0

所以这里有一个愚蠢的实验,我把它放在一起,基本上是想用修饰符生成一个 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 
        }
    }
4

2 回答 2

2

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

var num3 = +num1 + (+num2);

可能比使用parseIntor更可取,parseFloat原因有两个:

  • +将转换任何数字(意思是,整数和浮点数不需要不同的方法)
  • +如果任一值不可转换,则将失败。parseIntparseFloat忽略变量中的任何尾随文本。例如,parseInt("10px", 10)结果为10,而(+"10px")结果为NaN

你想用什么取决于你。

于 2013-02-14T20:47:46.073 回答
1
var CS = parseInt(document.battleForm.playerCS.value, 10); // or parseFloat if you expect float number

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

于 2013-02-14T20:47:05.220 回答