这个javascript程序是某个书课后习题,自己纯手工打造,可是就是算不出结果来!

原题:根据公式R=[P*I*(1+I)^N]/[(1+I)^N-1]用网页界面计算月供,P为总贷款额300000元,I为月息(按年息5%算),N为30X12月,结果月供是... 原题:根据公式R=[P*I*(1+I)^N]/[(1+I)^N-1]用网页界面计算月供,P为总贷款额300000元,I为月息(按年息5%算),N为30X12月,结果月供是1610.4649元,可是我的程序怎么也不执行,仅仅能看到文本框,求解释,谢谢
<html>
<head>
<script language="javascript" type="text/javascript">
<!--

function jisuan(){
double dbp=document.forms[0].elements[0].value;
double dbn=document.forms[0].elements[1].value*12;
double dbi=document.forms[0].elements[2].value;
double dbpow=Math.pow((1+dbi),dbn);
double dbr=dbp*dbi*dbpow/(dbpow-1);
document.forms[0].elements[3].value="";
document.write(dbr);
}

function chongzhi(){
document.forms[0].elements[0].value="";
document.forms[0].elements[1].value="";
document.forms[0].elements[2].value="";
document.forms[0].elements[3].value="";
}
-->
</script>

</head>
<body>
<form action="151.html" method="post" name="frm">
<table align="center">
<tr><td colspan="2"><input type="text" value="输入贷款总额"></td></tr>
<tr><td colspan="2"><input type="text" value="输入还款年限"></td></tr>
<tr><td colspan="2"><input type="text" value="输入贷款利息"></td></tr>
<tr><td colspan="2"><input type="text" value="月供"></td></tr>
<tr>
<td><input type="button" value="确定" onclick="jisuan();"></td>
<td><input type="button" value="重置" onclick="chongzhi();"></td>
</tr>
</table>
</form>

</body>
</html>
展开
 我来答
妥协沵旳倔强
2013-11-01 · 超过13用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:28.4万
展开全部

你好。 你的代码一共有三个问题。

1、变量类型,javascript是弱类型语言,其中所有变量类型都为var。因此需要将double改为var;

2、通常从文本框获得的数字,都是字符串类型的,在使用减法乘法除法时会自动转换成整型,但使用加法时会默认当作字符串与前后的值连接,所以需要转换类型,否则1 + 0.5得到的数为10.5不是1.5。javascript中没有parseDouble()方法,用parseFloat()即可转型。

3、<!-- -->是HTML注释,虽然这样写不会有什么影响,但还是建议写成//<![data[   ... //]]-->


以下是更改后的方法jisuan()

function jisuan(){
var dbp = document.forms[0].elements[0].value;
var dbn = document.forms[0].elements[1].value * 12;
var dbi = document.forms[0].elements[2].value; 
var dbpow = Math.pow((1 + parseFloat(dbi)), dbn);
var dbr = dbp * dbi * dbpow / (dbpow - 1);
document.forms[0].elements[3].value = dbr;
}
百度网友992e050a8
2013-11-01 · TA获得超过583个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:322万
展开全部
function jisuan(){
var dbp=document.forms[0].elements[0].value;
var dbn=document.forms[0].elements[1].value*12;
var dbi=document.forms[0].elements[2].value;
var dbpow=Math.pow((1+dbi),dbn);
vardbr=dbp*dbi*dbpow/(dbpow-1);
document.forms[0].elements[3].value="";
document.write(dbr);
}

js变量是松散型的 统一用var定义 具体类型 要看保存的具体是什么

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙上塔
2013-11-01 · TA获得超过136个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:190万
展开全部
大哥,你怎么可以加<!---->这个东西,加了就注释掉了,当然什么都不执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
班丘颖慧2B
2013-11-01 · 超过12用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:28万
展开全部

有两点错,第一:js没有double类型,

第二:你的js代码用<!--  -->包起来的,记得好像包起来也是可以的,但不知为何我这边调试出错,你可以试试不去掉,,,下面是我调试的代码 ,,,可正常运行

<html><head>
<script language="javascript" type="text/javascript">
function jiasuan(){
var dbp=document.forms[0].elements[0].value;
var dbn=document.forms[0].elements[1].value*12;
var dbi=document.forms[0].elements[2].value;
var dbpow=Math.pow((1+dbi),dbn);var dbr=dbp*dbi*dbpow/(dbpow-1);
document.forms[0].elements[3].value="";
document.write(dbr);
}
function chongzhi(){
document.forms[0].elements[0].value="";
document.forms[0].elements[1].value="";
document.forms[0].elements[2].value="";
document.forms[0].elements[3].value="";

</script>
</head><body>
<form action="151.html" method="post" name="frm">
<table align="center"><tr><td colspan="2">
<input type="text" value="输入贷款总额"></td></tr>
<tr><td colspan="2"><input type="text" value="输入还款年限"></td>
</tr><tr><td colspan="2"><input type="text" value="输入贷款利息"></td>
</tr><tr><td colspan="2"><input type="text" value="月供"></td></tr><tr><td>
<input type="button" value="确定" onclick="jiasuan();">
</td><td><input type="button" value="重置" onclick="chongzhi();">
</td></tr></table></form></body></html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式