使用javascript的数学方程式无法正常工作

时间:2014-02-14 00:47:14

标签: javascript

我在javascript中编写了一个公式,以帮助我在交易股票时轻松计算收支平衡公式。公式是计算收支平衡点是:((股票x价格)+佣金)/(股票)

所以对于我的代码,我写道:               
          

<script type="text/javascript" language="javascript" charset="utf-8">

function output(){
var value1 = document.getElementById('value1').value;
var value2 = document.getElementById('value2').value;
var value3 = document.getElementById('value3').value; 
document.getElementById('result').innerHTML = ((parseInt(value1) * parseInt(value2)) +      (parseInt(value3))) / (parseInt(value2));
}

</script>

但是,当我运行它时,我得不到正确的答案。例如,当股票= 20,价格= 8.88和佣金= 10时,它给出了8.5的答案,但正确答案是9.38。

任何人都可以告诉我哪里出错了,谢谢。

3 个答案:

答案 0 :(得分:1)

您正在调用parseInt而不是parseFloat,因此您丢失了数字的小数部分。

document.getElementById('result').innerHTML = ((parseFloat(value1) * parseFloat(value2)) +      (parseFloat(value3))) / (parseFloat(value2));

稍微更简单的方法是在获得每个值时使用一元加运算符:

var value1 = +document.getElementById('value1').value;
var value2 = +document.getElementById('value2').value;
var value3 = +document.getElementById('value3').value; 
document.getElementById('result').innerHTML = ((value1 * value2) + value3) / value2;

答案 1 :(得分:0)

那是因为价格被解析为整数。整数不能有小数,因此它向下舍入为8。

使用parseFloat代替parseInt作为价格。

答案 2 :(得分:0)

使用parseFloat代替parseInt,使用parseInt时,您最终会使用(20 * 8 + 10) / 20,而不是(20 * 8.88 + 10) / 20