使用变量在js中进行计算时无法获得正确的结果

时间:2018-11-13 21:37:47

标签: javascript calculation

因此,我正尝试创建一些“应用程序”以提高我为期一周的js技能的乐趣。比看起来更难!但是它非常有趣。因此,我遇到了我想到的最奇怪的困难:

当我在最后一行的计算中使用正数时,结果是正常的,当两个变量之一存在时,计算就非常简单(显然是错误的)。我花了很多时间寻找解决方案,但没有任何帮助。

var Alankylosaurus_stats = {
    hp: 4200,
    armor: .3,
    dmg: 900,
    speed: 110,
    crit: 5
};
var Allosinosaurus_stats = {
    hp: 4500,
    armor: .15,
    dmg: 1500,
    speed: 110,
    crit: 20
};
function dinoStats(x) {
    var y = parseFloat(document.getElementById('level_select_' + x).value);
    var dif = 26 - y;
    var dino = document.getElementById('dino_select_' + x).value;

    console.log(dif);
    if (dino === 'Alankylosaurus') {
        document.getElementById('table_hp_' + x).innerHTML = 
        Math.round( Alankylosaurus_stats.hp / (1.05 ^ dif));
    };
    if (dino === 'Allosinosaurus') {
        document.getElementById('table_hp_' + x).innerHTML = 
        Math.round( Allosinosaurus_stats.hp / (1.05 ^ dif));
    };

};

<tr>
    <td colspan="5">
            <label for="level_select_left">Choose level:</label>
            <select id="level_select_left" onchange="dinoStats('left')">
                <option value="1">--Please choose--</option>
                <option value="16">16</option>
                <option value="17">17</option>
                <option value="18">18</option>
                <option value="19">19</option>
                <option value="20">20</option>
                <option value="21">21</option>
                <option value="22">22</option>
                <option value="23">23</option>
                <option value="24">24</option>
                <option value="25">25</option>
                <option value="26" selected>26</option>
            </select>
    </td>
</tr>

<tr>
    <td colspan="5">
        <label for="dino_select_left">Choose Dino:</label>
        <select id="dino_select_left" onchange="dinoPick('left')">
            <option value="">--Please choose--</option>
            <option value="Alankylosaurus">Alankylosaurus</option>
            <option value="Allosinosaurus" selected>Allosinosaurus</option>
            <option value="Ankyntrosaurus">Ankyntrosaurus</option>
        </select>
    </td>
</tr>

html并不是真正必要的,但我只是用它来少说话:p

谢谢!

1 个答案:

答案 0 :(得分:0)

 1.05 ^ dif

不是您的想法。 ^是二进制异或运算符,它将在此处为您提供一些奇怪的值,而您需要指数运算符**

1.05 ** dif