Javascriptのプログラムで分数を入力として受け取り、これらの分数を使って特定の値を計算することが可能かどうかは疑問でした。私は数式((| max-min |)/((max + min)/ 2))* 100を使ったパーセンテージの差(物理学)の計算機を作ろうとしました。私はすでに入力を操作して配列で分割する方法を理解しています。したがって、私はval1とval2に最大値と最小値を格納しました。しかし、問題は計算に伴います。もともと、私は1つのステートメントで全体の数式を集めましたが、うまくいきませんでした。したがって、私は計算をステップに分け、各ステップの後に変数に値を格納して、計算が適切に行われたことを確認しました。数学で分数/小数を入力、計算、出力する
var step1=Math.abs(val1-val2);
var step2=val1+val2;
var step3=step2/2;
var step4=step1/step3;
var final=Math.round(step4*100*100)/100;
はしかし、特に画分と小数で、まだ計算して起こってグリッチがたくさんあります。これは私が持っているものです。たとえば、90/100と89/100が入力されたときのパーセンテージ値は、9/10と89/100が配置された場合とは異なるFARになります。たまに、小数点を入力するとNaNが返されます。私は本当に何が起こっているのか分からない。パーセンテージの差を計算する上で上記のコードが間違っていることを強調したり、JavaScriptがどのように計算し、計算結果がどのように出力されているかを教えてくれる人は、間違いなく助けになります。
ありがとうございます。 :)
これは助けであれば、これはプログラムの完全なコードです。問題を解決する必要がない場合は、これを無視することができます。私は問題のコードの完全に不要な部分をすべて削除しました。
<html>
<head>
<title></title>
</head>
<style type="text/css">
</style>
<script>
var def;
function submit() {
var e = document.getElementById("topic");
var ter = document.getElementById("term").value;
var strUser = e.options[e.selectedIndex].value;
if (!strUser) {
document.getElementById("textcom").value = "Please specify what needs to be solved.";
}
else if (!term) {
document.getElementById("textcom").value = "Please specify the values used to calculate.";
}
else {
if (strUser == "a") {
var arr = ter.split(",");
var val1 = parseInt(arr[0]);
var val2 = parseInt(arr[1]);
if (arr.length > 2 || arr.length < 2) {
def = "Error. Incorrect number of values written.";
}
else if (isNaN(val1) || isNaN(val2)) {
def = "Error. One or more values input is/are not a number.";
}
else {
var step1 = Math.abs(val1 - val2);
var step2 = val1 + val2;
var step3 = step2/2;
var step4 = step1/step3;
var final = Math.round(step4 * 100 * 100)/100;
def = final + "%";
}
}
document.getElementById("textcom").value = def;
}
}
</script>
<body>
<h1>Physics Calculator</h1>
<span>Please choose desired solution:</span>
<select id="topic">
<option disabled selected value>------ Option ------</option>
<option value="a">Percent Difference</option>
</select>
<br>
<span>Values:</span>
<input type="text" id="term"></input>
<br>
<br>
<textarea rows="20" cols="40" id="textcom">Uneditable. For output purposes only.</textarea>
<br>
<button onclick="submit()">Submit</button>
<script>
document.getElementById("textcom").readOnly = "true";
</script>
</body>
</html>
入力とは何ですか?期待される結果は何ですか?現在の出力とは何ですか? – Rayon
結果が期待通りではない*入力*入力ボックスにリテラル入力の具体例を挙げてください。あなたは時には* NaN *を得ると言っています。私たちがこのようなケースを探して検索することを期待しないでください。 – trincot