javascript不使用选择菜单中的值在数学计算中添加小数点

时间:2017-07-27 13:27:01

标签: javascript jquery math

我有一个带有各种值的下拉平均值......

<select id="number1a" onChange="Addition()">
  <option value="0" selected>-</option>
  <option value="10">10</option>
  <option value="7.5">7.5</option>
</select>

<select id="number1b" onChange="Addition()">
<option value="0" selected>-</option>
<option value="5">5</option>
<option value="5.5">5.5</option>
</select>

和一个javascript函数,它添加了值并将其显示为div ...

<script>
function Addition(){
number1a = parseInt(document.getElementById('number1a').value);
number1b = parseInt(document.getElementById('number1b').value);
output = number1a + number1b;
document.getElementById('score').innerHTML = +output;
</script>

和div显示数学......

<div id="score"></div>

该功能工作并显示一个数字,但它忽略了小数,所以如果我从下拉列表中选择“10”然后从下一个下拉列表中选择“5”,它会显示15,但是如果我选择10和5.5它显示16而不是15.5?

我尝试添加.toFixed(2);,但它没有效果,我得到相同的结果。例如......

var output = outputnum.toFixed(5);
document.getElementById('score').innerHTML = +outputnum;

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

问题在于以下几点:

parseInt

函数parseFloat()始终返回一个整数值(as described here)。因此,它将返回最接近的整数,即6.而不是5.5。

要获得5.5的实际值,您需要使用number1a = parseFloat(document.getElementById('number1a').value); number1b = parseFloat(document.getElementById('number1b').value); 方法,如here所述。所以只需将这两行更改为:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    page = this.arguments.getInt("someInt", 0)
    title = this.arguments.getString("someTitle")
}

它应该有用。