簡體   English   中英

簡單的 JavaScript 數學沒有意義

[英]Simple JavaScript math not making sense

感覺自己又變成新手了。 我以為我早就解決了這些問題。 下面是一個簡單的腳本,有兩個功能,但都不起作用。 我錯過了什么。 任何幫助表示贊賞。

 function calculator() { var bee = document.getElementById("beerPerc").value; var win = document.getElementById("winePerc").value; var liq = 100 - (bee + win); document.getElementById("liquorPerc").value = liq; } function calculator2() { document.getElementById("liquorPerc").value = parseInt(100 - (document.getElementById("beerPerc").value + document.getElementById("winePerc").value)) }
 <div id="calcArea"> <div> <input type="number" id="beerPerc" value="50" onkeyup="calculator2()"> &nbsp; % of Beer Drinkers<br> <input type="number" id="winePerc" value="30" onkeyup="calculator2()"> &nbsp; % of Wine Drinkers<br> <input type="number" id="liquorPerc" onkeyup="calculator2()"> &nbsp; % of Liquor Drinkers<br> </div> </div>

兩件事情:

  1. 案例很重要。 如果聲明變量bee ,則無法使用Bee讀取它。

  2. .value始終是一個字符串。 您需要將字符串轉換為數字:

     var bee = Number(document.getElementById("beerPerc").value);

如果不這樣做, +將執行字符串連接,而不是加法。

您不需要對數值計算的結果調用parseInt() ,它始終是一個數字。

function calculator2() {
    document.getElementById("liquorPerc").value = 100 - (parseInt(document.getElementById("beerPerc").value, 10) + parseInt(document.getElementById("winePerc").value, 10)))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM