how2j.cn

下载区
文件名 文件大小
UI.html 947b
步骤 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 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 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
复利公式:
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公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2021-04-01 答案
VOID1




用递归求结果,加了try-catch
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .main{width: 300px;height: 400px;}
        .left{width: 110px;}
        .right{width: 190px;}
        #t1{border-collapse: collapse}
        td{border: black solid 1px;}
    </style>
    <script>
        function excute() {
            var initMoney = document.getElementById('initMoney').value;
            var rate = document.getElementById('rate').value;
            var year = document.getElementById('year').value;
            var add = document.getElementById('add').value;
            try{
                initMoney = Number.parseFloat(initMoney);
                rate = Number.parseFloat(rate);
                year = Number.parseFloat(year);
                add = Number.parseFloat(add);
                var initMoneySum = initMoney+(year-1)*add;
                var result = profitSum(initMoney,add,year,rate);
                var profitsum = result-initMoneySum;
                setValue('initMoneySum',initMoneySum);
                setValue('profitSum',profitsum);
                setValue('sum',result);
            }catch (err){
                document.write(err.message);
            }
        }
        function profitSum(initMoney,add,year,rate){
            initMoney = initMoney*(1+rate);
            year--;
            while(year>=1) {
                initMoney+=add;
                return profitSum(initMoney,add,year,rate);
            }
            return initMoney;
        }
        function setValue(id, value){
            document.getElementById(id).value=value;
        }
    </script>
</head>
<body>

    <div class="main">
        <table id="t1">
            <tr>
                <td class="left">起始资金</td>
                <td class="right"><input id="initMoney" type="text">¥</td>
            </tr>
            <tr>
                <td class="left">每年收益</td>
                <td class="right"><input id="rate" type="text">%</td>
            </tr>
            <tr>
                <td class="left">复利年数</td>
                <td class="right"><input id="year" type="text">年</td>
            </tr>
            <tr>
                <td class="left">每年追加资金</td>
                <td class="right"><input id="add" type="text">¥</td>
            </tr>
            <tr><td align="center" colspan="2"><input type="button" value="计算" onclick="excute()"></td></tr>
            <tr>
                <td class="left">本金和</td>
                <td class="right"><input id="initMoneySum" type="text">¥</td>
            </tr>
            <tr>
                <td class="left">利息和</td>
                <td class="right"><input id="profitSum" type="text">¥</td>
            </tr>
            <tr>
                <td class="left">本息和</td>
                <td class="right"><input id="sum" type="text">¥</td>
            </tr>
        </table>
    </div>

</body>
</html>

							





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





2021-03-26 做完了
镜子里的笑脸




先想好公式就简单
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>利息计算</title>
</head>
<style>
    table{
        border-collapse: collapse;

    }
    td{
        border:1px solid darkgray;
        padding:5px;
    }
    input[type=button]{
        width:100px;
    }
</style>
<body>
<table>
    <tr>
        <td>起始资金</td>
        <td><input type="text" value="10000" id="p1"> ¥</td>
    </tr>
    <tr>
        <td>每年利息</td>
        <td><input type="text" value="5" id="r"> %</td>
    </tr>
    <tr>
        <td>复利年数</td>
        <td><input type="text" value="10" id="n"> 年</td>
    </tr>
    <tr>
        <td>每年追加资金</td>
        <td><input type="text" value="10000" id="p2"> ¥</td>
    </tr>
    <tr>
        <td colspan="2" style="text-align: center">
            <input type="button" value="计算" onclick="jiSuan()"></td>
    </tr>
    <tr>
        <td>本金和</td>
        <td><input type="text" value="0" disabled="disabled" id="p"> ¥</td>
    </tr>
    <tr>
        <td>利息和</td>
        <td><input type="text" value="0" disabled="disabled" id="l"> ¥</td>
    </tr>
    <tr>
        <td>本息和</td>
        <td><input type="text" value="0" disabled="disabled" id="f"> ¥</td>
    </tr>
</table>
<script>
    function jiSuan()
    {
        var p1=Number(document.getElementById("p1").value),    //起始资金p1
            p2=Number(document.getElementById("p2").value),    //每年追加投p2
            n=Number(document.getElementById("n").value),     //复利年数n
            r=Number(document.getElementById("r").value)/100; //年利率r
        var p=p1+p2*(n-1);                                     //本金和p
        var s=0;
        for(i=1;i<n;i++)
        {s=s+(1+r)**i;}
        var f=p1*((1+r)**n)+p2*s;                              //本息和f
        var l=f-p;                                             //利息和l
       document.getElementById("p").value=p;
        document.getElementById("l").value=l;
        document.getElementById("f").value=f;
    }
</script>
</body>
</html>

							





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





2020-10-30 自己搞的BMI测试身体健康情况
2020-08-19 花了一天才搞懂这代码的数学,站长你个der,之前都没教现在突然这么猛的来这两个函数...
2020-06-14 提交练习


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

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

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

上传截图