javascript - 使用下拉菜单/单选按钮选择舍入值

标签 javascript xhtml

这包含两个问题。第一个问题是将数字四舍五入到某个小数点。第二个问题是将下拉菜单连接到正确的小数点。

首先是我的代码:

<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。这是一种非常复杂的情况,但我经常需要这种情况。

由于我只了解 Javascript 的(非常)基础知识,即使使用 Google 我也找不到答案。有人能让我走上正轨吗(如果可能的话)?提前致谢。

最佳答案

我建议仅修复最终结果,toFixed()返回一个字符串。

用于选择的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);

A live demo at jsFiddle (已更新)。

编辑

看来我部分误解了你的问题。请检查更新的 fiddle ,现在您还可以通过从 select 中选择一个值来随时更改小数位数。

关于javascript - 使用下拉菜单/单选按钮选择舍入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260255/

相关文章:

javascript - 如何编写打印 css 以几乎与我们从 MS word 获得的方式相同的方式从网页获得打印?

javascript - 防止鼠标中键单击滚动

javascript - 如何使用 Javascript 操作行和表的背景颜色

java - 有没有办法一一检查程序的流程?

javascript - 如果我们使用 javascript 将 css 选择器应用于默认情况下不支持该属性的浏览器,有什么缺点

html - XHTML 和 HTML 之间的主要区别是什么?

javascript - 需要获取所有 applicationScope 变量名称的数组

javascript - 部分 View 中的 MVC Ajax.BeginForm 在父 View 上执行函数更新父 View

javascript - 点击按钮显示图表,再次点击关闭图表

javascript - 使用 HTML Canvas 创建反射图像?