【问题标题】:javascript math equationjavascript数学方程
【发布时间】:2009-03-09 23:35:40
【问题描述】:

我有两个表单字段moneyyears 需要将数字输出到第三个字段cv

理想情况是在输入第一个数字时,但我也可以在按下按钮后发生这种情况

<FORM name="salary">
    <input type="number" size=12 name="money"> 
    <input type="number" size=12 name="years"> 
    <input type="number" size=12 name="cv"> 
</FORM>

所涉及的数学如下。

(金钱 * 年) - (金钱 * 年) x = cv

地点:

  • 如果年份等于1,x等于0
  • x 等于 0.2 如果年份等于 2
  • x 等于 0.45,如果年份等于 3
  • x 等于 0.6,如​​果年份等于 4
  • x 等于 0.65,如果年份等于 5
  • x 等于 0.75,如果年份等于 6

【问题讨论】:

  • 这是作业吗?你走了多远,问题到底出在哪里?
  • 年份的其他值呢?

标签: javascript math equation


【解决方案1】:

分解问题,你需要知道如何使用javascript:

  • 以编程方式获取输入到文本框中的文本
  • 确认文本框包含数字数据
  • 执行数学运算
  • 设置第三个文本框的值

所有这些以及更多内容都可以在 here 找到。

【讨论】:

    【解决方案2】:

    你可以使用 jQuery,在这种情况下它会是这样的:

    var money = parseFloat($("#money").val());
    var years = parseInt($("#years").val(), 10);
    var x = [0.00, 0.20, 0.45, 0.60, 0.65, 0.75][years-1];
    
    $("#cv").val((money*years)*(1-x));
    

    【讨论】:

    • 将x值放在一个数组中并使用年份作为索引不是更有效吗?
    • 您也可以将 1-x 值放入数组中并在最后一行丢失减法,这样效率稍高一些,但缺点是它遵循规范不那么明显.在这个小例子中,我会保持原样,但在更复杂的情况下,预处理常量和构建表可能是一个胜利。
    • 这个答案帮助我在 JavaScript 中做一些数学运算。谢谢。
    【解决方案3】:

    您将希望在人们输入数据的两个字段上放置一个 onKeyUp() 事件并调用如下所示的函数,此外还为函数中使用的每个字段添加一个 id。如果您不使用原型或 jquery,则需要使用 getElementById('var') 代替 $('var')

    function calculateAndSetCV()
    {
        money = parseFloat($('money').val());
        years = parseInt($('years').val());
        cv = 0;
    
        if(years == 1)
        {
            cv = (money * years) - (money * years)0;
        }
    
        $('cv').val(cv);
    }
    

    【讨论】:

      【解决方案4】:

      算一算:

      (money * years) - (money * years) x = cv
      (money * years) x = (money * years) - cv
      x = ((money * years) - cv) / (money * years)
      x = 1 - cv / (money * years)
      

      http://jquery.com/获取jQuery

      像这样更新你的代码(注意 name → id):

      <script type="text/javascript" src="jquery.js"></script>
      <input type="number" size="12" id="money" />
      <input type="number" size="12" id="years" />
      <input type="number" size="12" id="cv" />
      <div id="result"></div>
      <script type="text/javascript">
        $ ('input').bind ('input change keyup keydown keypress', function () {
          $ ('#result').val (
             1 - $ ('#cv').val () / ($ ('#money').val () * $ ('#years').val ())
          )
        })
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        相关资源
        最近更新 更多