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

Cannot get correct result when using variables to do calculation in js

所以我试图创造一些 "app" 来培养我一周的 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.05 ^ dif

不是你想的那样。 ^ 是二元异或运算符,它会在这里给你一些奇怪的值,而不是你想要指数运算符 **:

1.05 ** dif