我想創建一個相當簡單的表單,它將允許輸入變量並解決給定的公式。我在如何表達公式以及如何將前兩個變量理解爲指數方面磕磕絆絆。使用Javascript快速/解決公式
下面是完整的公式,在Excel中(細胞的標籤替換爲HTML的輸入名字)工作原理:
=varNk * varQr * (273 + varT)/(273 + varTo) * varPp/varP * varKq * varKak
注意,「varNk」和「varQr」與指數輸入的值 - 即97.53^12
編輯:實際公式(鏈接到圖像,因爲我沒有足夠的代表直接發佈) - http://mattk.net/DwFormula1.PNG
這是我試圖做的工作。我不確定組裝最終輸出的正確方法,但理想情況下我想弄清楚如何使它成爲單個按鈕操作。
<head>
<script>
function doCalcOne()
{
var varNk = document.getElementById('varNk').value;
var varQr = document.getElementById('varQr').value;
var varT = document.getElementById('varT').value;
var varTo = document.getElementById('varTo').value;
var varPo = document.getElementById('varPo').value;
var varP = document.getElementById('varP').value;
var varKq = document.getElementById('varKq').value;
var varKak = document.getElementById('varKak').value;
var result1 = document.getElementById('stepOne');
var stepOne = varNk * varQr;
result1.value = stepOne;
}
function doCalcTwo()
{
var result2 = document.getElementById('stepTwo');
var stepTwo = parseInt(varT.value) + 273;
result2.value = stepTwo;
}
</script>
</head>
<html>
<table>
<tr>
<td>Step One:<input id="stepOne" /></td>
</tr>
<tr>
<td>Step Two:<input id="stepTwo" /></td>
</tr>
</table>
<div id="DoseRateCalc">
<p>Enter the values below to calculate the Dose Rate</p>
</div>
<table style="width:600px;border:1px solid #000;">
<tr>
<td>
<p>Nk=<input id="varNk" type="text"></p>
</td>
<td>
<p>TN 34013 IC Cal Certificate Detection Calibration Factor</p>
</td>
<tr>
<td>
<p>Qr=<input id="varQr" type="text"></p>
</td>
<td>
<p>Unidos measured charge in pC (pico coulumb)@20mm</p>
</td>
</tr>
<tr>
<td>
<p>T=<input id="varT" type="text"></p>
</td>
<td>
<P>Current temperature</p>
</td>
</tr>
<tr>
<td>
<p>To=<input id="varTo" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol temp</p>
</td>
</tr>
<tr>
<td>
<p>Po=<input id="varPo" type="text"></p>
</td>
<td>
<p>Current pressure</p>
</td>
</tr>
<tr>
<td>
<p>P=<input id="varP" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol pressure</p>
</td>
</tr>
<tr>
<td>
<p>Kq=<input id="varKq" type="text"></p>
</td>
<td>
<p>TN34013 IC cal certificate protocol TW30 Beam Quality Correction value</p>
</td>
</tr>
<tr>
<td>
<p>Kak->DW=<input id="varKak" type="text">
</td>
<td>
<p>Correction factor TN 34013 IC from PTW. Air Kerma --> absorbed dose to water convertion for TW30 Water Phantom Manual pg43</p>
</td>
</tr>
</p>
<p><input type="button" value="Calculate Step 1" onClick="doCalcOne()"></p>
<p><input type="button" value="Calculate Step 2" onClick="doCalcTwo()"></p>
</table>
<br>
</html>
編輯2: 工作職能:
function doCalcOne()
{
var varNk = document.getElementById('varNk').value;
var varQr = document.getElementById('varQr').value;
var varT = document.getElementById('varT').value;
var varTo = document.getElementById('varTo').value;
var varPo = document.getElementById('varPo').value;
var varP = document.getElementById('varP').value;
var varKq = document.getElementById('varKq').value;
var varKak = document.getElementById('varKak').value;
var result1 = document.getElementById('stepOne');
var stepOne = varNk * (Math.pow(10,9)) * varQr * (Math.pow(10,-12)) * (273 + varT)/(273 + varTo) * varPo/varP * varKq * varKak;
num = stepOne;
result1.value = num.toPrecision(4);
}
哇,我真的很感謝你的快速反應和時間來解決這個混亂!對於如何在一個功能下創建這一切,我仍然有點失落?我的最終值需要代表 '= varNk * varQr *(273 + varT)/(273 + varTo)* varPp/varP * varKq * varKak' 以及如何使前兩個變量接受格式23^12(純粹是一個例子)。我很抱歉沒有馬上理解這一點。 – mkrueger
沒問題,在JavaScript中使用[pow](http://www.w3schools.com/jsref/jsref_pow.asp)函數做指數。如果你需要將基數和指數作爲變量,你必須解析文本「23^12」(困難,但並不那麼難),或者只提供兩個輸入框,一個用於底部,另一個用於輸入指數。 –
另外,我認爲數學原本是錯誤的,那是你的問題!我會更新我的答案! –