how2j.cn

下载区
文件名 文件大小
UI.html 947b

解压rar如果失败,请用5.21版本或者更高版本的winrar

点击下载 winrar5.21
步骤 1 : 本练习的效果   
步骤 2 : 复利公式   
步骤 3 : html部分   
步骤 4 : 答案   

步骤 1 :

本练习的效果

edit
<style> table{ border-collapse:collapse; } td{ border:1px silver solid; padding: 5px; font-size:12px; } input{ width:180px; } </style> <script> function getUrlParms(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null){ var result = unescape(r[2]); var reg = new RegExp('%',"g");//g,表示全部替换。 result= result .replace(reg,""); return result; } return null; } /*取幂函数*/ function p(base, power){ if(1==power) return base if(0==power) return 1; var result = base; for(var i = 0; i<power-1; i++){ result = result*base; } return result; } /*取复利*/ function fuli(rate, year){ var result = 0; for(var i=year;i>0;i--){ result+=p(rate,i); } return result; } function calc(){ var initMoney= getNumberValue("initMoney"); var rate= getNumberValue("rate") +0.0; var year= getNumberValue("year"); var each= getNumberValue("each"); var sum1 = (year-1)*each+initMoney; var sum3=each* fuli( (1+rate/100),(year-1)) + initMoney*p( (1+rate/100) ,year); var sum2 = sum3-sum1; setValue("sum1",sum1); setValue("sum2",sum2); setValue("sum3",sum3); } function setValue(id,value){ document.getElementById(id).value=value; } function getNumberValue(id){ return parseFloat(document.getElementById(id).value); } </script> <table> <tr> <td>起始资金</td> <td><input type="text" id="initMoney" value='10000'> ¥</td> <tr> <td>每年收益</td> <td><input type="text" id="rate" value='5'> %</td> </tr> <tr> <td>复利年数</td> <td><input type="text" id="year" value='10'> 年</td> </tr> <tr> <td>每年追加资金</td> <td><input type="text" id="each" value='10000'> ¥</td> </tr> <tr> <td colspan="2" align="center"><input type="button" value="计算" onclick="calc()"></td> </tr> <tr> <td>本金和</td> <td><input type="text" id="sum1" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>利息和</td> <td><input type="text" id="sum2" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>本息和</td> <td><input type="text" id="sum3" disabled="disabled" value='0'> ¥</td> </tr> </table> <script> var rate = getUrlParms("rate"); if(null!=rate){ rate = new Number(rate); rate = rate.toFixed(2); document.getElementById("rate").value=rate; document.getElementById("each").value=0; calc(); } </script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
复利公式:
F = p* ( (1+r)^n );
F 最终收入
p 本金
r 年利率
n 存了多少年

假设情景一:
p = 10000
r = 0.05
n = 1

解读:
本金是10000
年利率是5%
存了一年 1次
复利收入 10000*( (1+0.05)^1 ) = 10500

假设情景二:
p = 10000
r = 0.05
n = 2

解读:
本金是10000
年利率是5%
存了两年
复利收入 10000*( (1+0.05)^2 ) = 11025
运行效果
<style> table{ border-collapse:collapse; } td{ border:1px silver solid; padding: 5px; font-size:12px; } input{ width:80px; } </style> <table> <tr> <td>起始资金</td> <td><input type="text" id="initMoney" value='0'> ¥</td> </tr> <tr> <td>每年收益</td> <td><input type="text" id="rate" value='0'> %</td> </tr> <tr> <td>复利年数</td> <td><input type="text" id="year" value='1'> 年</td> </tr> <tr> <td>每年追加资金</td> <td><input type="text" id="each" value='0'> ¥</td> </tr> <tr> <td colspan="2" align="center"><input type="button" value="计算" ></td> </tr> <tr> <td>本金和</td> <td><input type="text" id="sum1" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>利息和</td> <td><input type="text" id="sum2" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>本息和</td> <td><input type="text" id="sum3" disabled="disabled" value='0'> ¥</td> </tr> </table>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
运行效果
<style> table{ border-collapse:collapse; } td{ border:1px silver solid; padding: 5px; font-size:12px; } input{ width:180px; } </style> <script> /*取幂函数*/ function p(base, power){ if(1==power) return base if(0==power) return 1; var result = base; for(var i = 0; i<power-1; i++){ result = result*base; } return result; } /*取复利*/ function fuli(rate, year){ var result = 0; for(var i=year;i>0;i--){ result+=p(rate,i); } return result; } function calc(){ var initMoney= getNumberValue("initMoney"); var rate= getNumberValue("rate") +0.0; var year= getNumberValue("year"); var each= getNumberValue("each"); var sum1 = (year-1)*each+initMoney; var sum3=each* fuli( (1+rate/100),(year-1)) + initMoney*p( (1+rate/100) ,year); var sum2 = sum3-sum1; setValue("sum1",sum1); setValue("sum2",sum2); setValue("sum3",sum3); } function setValue(id,value){ document.getElementById(id).value=value; } function getNumberValue(id){ return parseFloat(document.getElementById(id).value); } </script> <table> <tr> <td>起始资金</td> <td><input type="text" id="initMoney" value='10000'> ¥</td> <tr> <td>每年收益</td> <td><input type="text" id="rate" value='5'> %</td> </tr> <tr> <td>复利年数</td> <td><input type="text" id="year" value='10'> 年</td> </tr> <tr> <td>每年追加资金</td> <td><input type="text" id="each" value='10000'> ¥</td> </tr> <tr> <td colspan="2" align="center"><input type="button" value="计算" onclick="calc()"></td> </tr> <tr> <td>本金和</td> <td><input type="text" id="sum1" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>利息和</td> <td><input type="text" id="sum2" disabled="disabled" value='0'> ¥</td> </tr> <tr> <td>本息和</td> <td><input type="text" id="sum3" disabled="disabled" value='0'> ¥</td> </tr> </table>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2024-07-26 JS 实现复利计算功能
虚心求学




主要使用了 Math.pow(a,b) 函数 和 document.getElementById() 的获取元素方法。 需要注意的细节: 1. 第一年不追加投资; 2.输入的利率,结果要除以100,换为百分比; 3.输入的数据需要转换为 Float 类型,否则计算会出错; 4. js 无Double,转换时需要取 浮点数 。 5.当年的利息 需要累计到 下一年,利滚利
加载中
/*--------------------- style.css 文件---------------------*/

tr{
	text-align:right;
	border:1px solid  black;
}

//--------------------- srcipt.js 文件-----------------------

//打印结果
function log(info){
	get('res').value += info+"\r\n";
}
function get(id){
	var element = document.getElementById(id);
	return element ;
}

function set(id,value){
	get(id).value=value;
}

function getFloatById(id){
	return parseFloat(get(id).value);
}
//获取总利息收入
function getTotalInterest(init,rate,year,append){
	//每年总投资金额,第一年仅投本金,无追加
	let invest = init+0*append;
	//总利息收入
	let total = 0;
	for(let d = 0; d<year ; d++)
	{
		//本年的利息收入 = 投的钱*收益率
		currentYearIncome = invest * rate;
		total +=currentYearIncome;

		//每年追投一些金额;
		//同时,今年的利息收入继续投资,明年利滚利
		invest += append + currentYearIncome ;

		//记录
		log("第"+(d+1)+"年 利息为:"+currentYearIncome);
		
		
	}
	log("总收入为:"+total);
	return total ;
}

function count( ){
	//拿到数据
	const init = getFloatById('init');
	const rate = getFloatById('rate')/100.0;
	const year = getFloatById('year');
	const append = getFloatById('append');
	
	//本金和为:起始资金 + 每年追投的金额(第一年没追加)
	const sum1 = init+append*(year-1);
	//利息和为:
	const sum2 = getTotalInterest(init,rate,year,append);
	//本息和为:
	const sum3 = sum1 + sum2;
	
	//写出数据
	set('sum1',sum1);
	set('sum2',sum2);
	set('sum3',sum3);
}

<!------------------- html 文件 -------------------->

<html>
<head>
        <meta http-equiv="Content-Type" connect="text/html;charset=UTF-8"/>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script src="script.js"></script>
</head>

<body  style="width:60%">
	<table>
		<tr>
			<td style="width:130px">起始资金:</td>
			<td style="width:200px"><input id="init" type="text">¥</td>
		</tr>
		<tr>
			<td>年收益率:</td>
			<td><input id="rate" type="text">%</td>
		</tr>
		<tr>
			<td>复利年数:</td>
			<td><input id="year" type="text">年</td>
		</tr>
		<tr>
			<td>年追加额:</td>
			<td><input id="append" type="text">¥</td>
		</tr>
		<tr><td colspan="2" ><center><button onclick="count();"  style="padding:5 20;margin:15px;letter-spacing:3">计算</button></center><td></tr>
<tr>
			<td style="width:120px">本金和:</td>
			<td style="width:180px"><input id="sum1" type="text">¥</td>
		</tr>
		<tr>
			<td>利息和:</td>
			<td><input id="sum2" type="text">¥</td>
		</tr>
		<tr>
			<td>本息和:</td>
			<td><input id="sum3" type="text">¥</td>
		</tr>
	</table>

	<div>
	<textarea style="margin-top:30px; height:300px; width:50%;font-size:16px;letter-spacing:1;line-height:135%"  id="res"></textarea>
	</div>
</body>
</html>

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-04-04 JavaScript 阶段性练习-3
起个名




复利公式: F = p* ( (1+r)^n ); F 最终收入 p 本金 r 年利率 n 存了多少年
<style>
	table{
		border-collapse: collapse;
	}
	td{
		border: 1px solid lightgray;
		padding: 5px;
		font-size: 12px;
	}
	input{
		margin: 2px 2px;
		width: 80%;
	}
	button{
		margin: 2px 2px;
		align: center;
		width: 45%;
	}
</style>
<script>
	// 
	function getPrincipalsum(intialfund,compoundinterestyears,yearaddfund){
		var principalsum = intialfund + compoundinterestyears * yearaddfund;
		return principalsum;
	}
	// 
	function getInterestsum(intialfund, yearearnings, compoundinterestyears, yearaddfund){
		var yearper = yearearnings / 100;
		var interestsum = 0;
		for(var i = 0;i < compoundinterestyears;i++){
			interestsum += intialfund * yearper;
			intialfund += yearaddfund;
		}
		return interestsum;
	}
	// 
	function getPrincipalInterestSum(intialfund, yearearnings, compoundinterestyears, yearaddfund){
		var principalinterestsum = getPrincipalsum(intialfund, compoundinterestyears, yearaddfund) + getInterestsum(intialfund, yearearnings, compoundinterestyears, yearaddfund);
		return principalinterestsum;
	}
	function setValue(id, value){
		document.getElementById(id).value = value;
	}
	function calc(){
		var intialfund = *;
		var yearearnings = *;
		var compoundinterestyears = *;
		var yearaddfund = *;
		
		setValue("principalsum", getPrincipalsum(intialfund, compoundinterestyears, yearaddfund));
		setValue("interestsum", getInterestsum(intialfund, yearearnings, compoundinterestyears, yearaddfund));
		setValue("principalinterestsum", getPrincipalInterestSum(intialfund, yearearnings, compoundinterestyears, yearaddfund));
	}
	function getNumber(id){
		return parseFloat(document.*.value);
	}
</script>
<table border="1">
	<tr>
		<td width="40%">起始资金</td>
		<td><input type="text" id="intialfund" value="10000"></input> ¥ </td>
	</tr>
	<tr>
		<td>每年收益</td>
		<td><input type="text" id="yearearnings" value="5"></input> % </td>
	</tr>
	<tr>
		<td>复利年数</td>
		<td><input type="text" id="compoundinterestyears" value="10"></input> 年 </td>
	</tr>
	<tr>
		<td>每年追加资金</td>
		<td><input type="text" id="yearaddfund" value="10000"></input> ¥ </td>
	</tr>
	<tr>
		<td colspan="2" align="center"><input type="button" value="计算" onclick="calc()"></td>
	</tr>
	<tr>
		<td>本金和</td>
		<td><input type="text" id="principalsum" value="0"></input> ¥ </td>
	</tr>
	<tr>
		<td>利息和</td>
		<td><input type="text" id="interestsum" value="0"></input> ¥ </td>
	</tr>
	<tr>
		<td>本息和</td>
		<td><input type="text" id="principalinterestsum" value="0"></input> ¥ </td>
	</tr>
<table>

							


2 个答案

CharlieLong
答案时间:2023-10-31
代码实现了复利计算和输入内容校验功能

54Mozu
答案时间:2022-12-08



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2022-01-21 完成
2021-05-18 不说了,站长代码都没我快
2021-04-01 答案


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 27 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 前端部分-JavaScript-阶段性练习3 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图