首页 > 解决方案 > 将输入框的值与 JavaScript 中的先前结果相除

问题描述

有 3 个数字输入框。当我将数字分别放在第一个和第二个框中时,它会被计算并返回一个result. 我想要的是将它除以result第三个输入,value3.

简化:

输入框 X、Y、Z

Q是X和Y的计算结果

我想要Q / Z(通过单击一个按钮)

到目前为止,这是我的代码:

    const cal = () => {
                const A = parseInt(value1.value.replace(/,/g, '')),
                    B = parseInt(value2.value.replace(/,/g, ''));
                // console.log(parseInt(A), parseInt(B));
                const res = A * 0.9 * parseFloat(100 / B);

                result.innerText = `you have ${new Intl.NumberFormat('de-DE', { style: 'currency', 
    currency: 'EUR' }).format(res)} dollar.`;
    };

标签: javascript

解决方案


你的公式可以简化一点,没有必要将除法结果再次转换为浮点数,所以这是我的版本:

// "quick and dirty" method for defining a global variable for each input field ...
[...document.querySelectorAll("input")].forEach (e=>window[e.name]=e);

const calc=ev=>{
  if (ev && ev.target.tagName!=="INPUT") return;
  const A = parseInt(value1.value.replace(/,/g, '')),
        B = parseInt(value2.value.replace(/,/g, ''));
  q.value =  A * 90. / B;
  result.value = `you have ${new Intl.NumberFormat('de-DE', { style: 'currency', 
currency: 'EUR' }).format(q.value / value3.value)} dollar.`
};

document.addEventListener("input",calc);
calc(); // initial calculation
<input type="text" name="value1" placeholder="value1" value="100"> intermediate result:<br>
<input type="text" name="value2" placeholder="value2" value="90">
<input type="text" name="q" readonly>
<br>
<input type="text" name="value3" placeholder="value3" value="1"><br>
final result = int(value1) * 90 / int(value2) / value3<br>
<input type="text" name="result" readonly>


推荐阅读