【问题标题】:JavaScript error on calculating average of different variables计算不同变量平均值时的 JavaScript 错误
【发布时间】:2017-09-14 17:27:35
【问题描述】:

我在这里是因为我在计算 3 个变量的平均值时遇到了一些问题。这是脚本:

<script type="text/javascript">
    var a, b ,c;
    var moy;

    var a= prompt("Moyenne 1 ?");
    var b= prompt("Moyenne 2 ?");
    var c= prompt("Moyenne 3 ?");

    document.write(a+" "+b+" "+c)


    moy = (a+b+c)/3;
    moy= Math.floor(moy*100)/100;
    document.write("Moyenne :"+moy);
</script>

我注意到错误出现在“moy = (a+b+c)/3”。它没有给出正确的数字,而是给出了比它应该给出的更大的数字。我不知道如何修改它,它应该正常工作。 我使用的是 Firefox build 55(所以是最新版本)。

我是 JavaScript 新手,所以我可能不懂高级脚本 :)。 感谢您的回答,我完全迷失了这个错误!

【问题讨论】:

  • prompt 返回一个字符串,+ 运算符连接字符串。
  • 您应该确保将 a、b、c 转换为数字。例如,var a = parseFloat(prompt("Moyenne 1?"));
  • 您需要将从提示中获得的 a、b、c 字符串解析为某种数字。您可以使用parseIntparseFloat,但如果用户输入非数字,您将不得不处理可能出现的错误。
  • 已修复,非常感谢!

标签: javascript firefox average


【解决方案1】:

试试看

moy = (parseInt(a,10)+parseInt(b,10)+parseInt(c,10))/3;

Refer Here

【讨论】:

    【解决方案2】:

    当您添加提示值时,提示返回一个字符串值,其连接所有值 并且还在 javscript 中划分连接的值,因此它返回错误的答案。 所以首先将所有值解析为int。试试下面的代码

    var a= prompt("Moyenne 1 ?");
    var b= prompt("Moyenne 2 ?");
    var c= prompt("Moyenne 3 ?");
    a = parseInt(a);
    b = parseInt(b);
    c = parseInt(c);
    moy = (a+b+c)/3;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      相关资源
      最近更新 更多