簡體   English   中英

使用下拉菜單/單選按鈕選擇取整值

[英]Round value using selection of drop down menu / radio button

這包括兩個問題。 第一個問題是將數字四舍五入到某個小數點。 第二個問題是將下拉菜單連接到右小數。

首先我的代碼:

<style>
  span{font-style:italic;}
  span{color:green;}
</style>

<script>
    function calcul(){
            var sales = parseFloat(document.getElementById("sales").value);
            var OpExp = parseFloat(document.getElementById("OpExp").value);
            var TaxAll = parseFloat(document.getElementById("TaxAll").value);
            var Depre = parseFloat(document.getElementById("Depre").value);
            var Divid = parseFloat(document.getElementById("Divid").value);
            var TaxR = parseFloat(document.getElementById("TaxR").value);
            //GP = Gross Profit
            var GP = sales - OpExp;
            //TaxInc = Taxable Income
            var TaxInc = GP + TaxAll;
            //NetInc = Net Income
            var NetInc = TaxInc - ((TaxR / 100) * TaxInc);
            document.getElementById("NetIncome").innerHTML= 
            TaxInc - ((TaxR / 100) * TaxInc);
            //AtRE = Addition to Retained Earnings
            document.getElementById("AtRE").innerHTML = NetInc - Divid;
        }
</script>

<form action="" id="nothing">
In 2007 the British building firm Balfour Betty plc had sales of 
<input type="text" id="sales" maxlength="6" size="6"> 
million, total operating expenses of 
<input type="text" id="OpExp" maxlength="6" size="6"> 
million, a tax allowance (rebate) of 
<input type="text" id="TaxAll" maxlength="6" size="6"> 
million because of past losses, and 
<input type="text" id="Depre" maxlength="6" size="6"> 
depreciation. <strong>What is the net income of the
firm?</strong><br />
<br />
Balfour Betty plc paid out <input type="text" id="Divid" maxlength="6" size="6"> million 
in cash dividends. <strong>What is the addition to retained earnings?</strong><br />
<br />
The tax rate is <input type="text" id="TaxR"  maxlength="6" size="6"> %.<br />
<br />
  <input type="button" value="Calculate" id="but" onclick="calcul()" /><br />
<br />
</form>

<strong>The Net Income of Balfour Betty plc is </strong><span id="NetIncome">XXX</span>
<strong> million</strong><br />
<br />
<strong>The addition to retained earnings of Balfour Betty plc is </strong><span id="AtRE">
XXX</span><strong> million</strong>
<br />
<br />

第一個問題:四舍五入數字。 以下答案: <span id="NetIncome">需要動態舍入。 我嘗試添加一個名為RNetInc的新變量,並添加以下公式RNetInc = NetInc.toFixed(4) ,但是它只給了我兩位小數,刷新后它甚至不再起作用。 將答案四舍五入為N個小數的最佳方法是什么?

第二個問題是我不知道是否可能。 我想到的是以下內容:下拉菜單

<select>
    <option value"1">1 decimal</option>
    <option value"2">2 decimals</option>
    <option value"3">3 decimals</option>
</select> 

所以,我要的是單擊N decimal ,答案將變為N小數點。 這是一種非常復雜的情況,但我經常需要這種情況。

由於我只知道Java語言的(非常)基礎知識,即使使用Google也無法找到答案。 有人可以讓我走上正確的路(如果可能的話)嗎? 提前致謝。

我建議只修復最終結果, toFixed()返回一個字符串。

用於select HTML:

<select id="dec">
    <option value="1">1 decimal</option>
    <option value="2">2 decimals</option>
    <option value="3">3 decimals</option>
</select>

calcul()

var decs = +(document.getElementById('dec').value); // Add this line
document.getElementById("NetIncome").innerHTML = (TaxInc - ((TaxR / 100) * TaxInc)).toFixed(decs);
document.getElementById("AtRE").innerHTML = (NetInc - Divid).toFixed(decs);

jsFiddle上的現場演示 (已更新)。

編輯

看來我已經部分地誤解了您的問題。 請檢查更新的小提琴,現在您還可以隨時通過從select一個值來更改小數位數。

暫無
暫無

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

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