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

2つの数値が確実に加算されるようにするには、次のことを試してください。

var num3 = +num1 + (+num2);

これは、または2つの理由で使用するよりも優先される可能性があります。parseIntparseFloat

  • +任意の数値を変換します(つまり、整数と浮動小数点数に異なるメソッドは必要ありません)
  • +どちらかの値が変換できない場合は失敗します。変数の末尾のテキストは無視してください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 に答える