我在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。
任何人都可以告诉我哪里出错了,谢谢。
答案 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
。