【问题标题】:Trouble getting a sum?讨钱有困难?
【发布时间】:2017-02-20 16:38:21
【问题描述】:

出于某种原因,我的代码只是不想计算。我正在练习一本练习书,但在这方面它并没有真正帮助我。我得到的总和是 20000NaN,我知道这不是一个数字。我怎样才能让它正确计算?我尝试使用 ParseFloat 来转换我的百分比。谢谢。

<form action="#" name="car">
        <p>&nbsp;</p>
        <p>Vehicle:
          <select id="dropDown1">
            <option selected value="370z, 20000, 10%, 8.5%">Accord</option>
            <option value="M3, 18000, 8%, 8.5%">Altima</option>
            <option value="Camaro, 19000, 9%, 8.5%">Camry</option>
          </select>
        <br />
        <br />
        </p>
        <button type="button" onclick="car()" value="Submit">Book it now</button>
        <br />
        <br />
        <textarea name="answer" cols="80" rows="3" disabled></textarea>
        <br />
        <br />
    </form>
</div>

<script language="javaScript">
    function car() {
        var value = document.getElementById("dropDown1").value;
        var split = value.split(",");
        var v1 = split[0];
        var v2 = split[1];
        var v3 = split[2];
        var v4 = split[3];
parseFloat(v3);
parseFloat(v4);
profit = v2*v3;
tax = v2*v4;
extra = profit+tax;
sum = v2 + extra;

            document.car.answer.value = "You selected " + v1 + " " + "which has a base price of" + v2 + ", a profit of" + v3 + ", and sales tax of" + v4 + "." + " Total cost of this vehicle, including profit and sales tax is: $" + sum + "."

    }

</script>

【问题讨论】:

  • parseFloat(v3) 没有改变 v3,它返回一个数字...

标签: javascript html math percentage


【解决方案1】:

解析为float时需要赋值:

v3 = parseFloat(v3);
v4 = parseFloat(v4);

【讨论】:

    【解决方案2】:

    您的大部分语法都不正确。 应该是这样的:

    var test = function() {
            var value = document.getElementById("dropDown1").value;
            var split = value.split(",");
            var v1 = split[0];
            var v2 = split[1];
            var v3 = split[2];
            var v4 = split[3];
            v3 = parseFloat(v3);
            v4 = parseFloat(v4);
            var profit = parseFloat(v2)*parseFloat(v3)/100;
            var tax = parseFloat(v2)*parseFloat(v4)/100;
            var extra = parseFloat(profit)+parseFloat(tax);
            var sum = parseFloat(v2) + parseFloat(extra);
    document.getElementById("answer").value = "You selected " + v1 + " " + "which has a base price of $" + v2 + ", a profit of " + v3 + "%, and sales tax of " + v4 + "%. Total cost of this vehicle, including profit and sales tax is: $" + sum + ".";
        };
    <form action="#" name="car">
            <p>&nbsp;</p>
            <p>Vehicle:
              <select id="dropDown1">
                <option selected value="370z, 20000, 10%, 8.5%">Accord</option>
                <option value="M3, 18000, 8%, 8.5%">Altima</option>
                <option value="Camaro, 19000, 9%, 8.5%">Camry</option>
              </select>
            <br />
            <br />
            </p>
            <button type="button" onclick="test()" value="Submit">Book it now</button>
            <br />
            <br />
            <textarea id="answer" cols="80" rows="3" disabled></textarea>
            <br />
            <br />
        </form>

    【讨论】:

    • 好多了!谢谢你。但是有一个问题:我的税收和利润显示两个太多的零。它显示的是 200000,而不是 2000。
    • 因为都是百分比,所以需要除以100。代码是固定的:D
    • 刚刚想通了。非常感谢!
    【解决方案3】:

    使用:

    v3=parseFloat(v3);
    v4=parseFloat(v4);
    

    代替:

    parseFloat(v3);
    parseFloat(v4);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-06
      • 2019-01-30
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      相关资源
      最近更新 更多