复利计算器

C#复利计算器源码详解:从公式到工程避坑指南 复利计算是金融理财与贷款场景中的基础算法,其核心公式 F = P*(1+r)^n 体现了“利滚利”的资金增长逻辑。在 C# 工程实现中,精度控制至关重要,通常采用 decimal 类型避免 double 的累积误差,并通过循环累乘替代不支持 decimal 的 Math.Pow。一款基于 VS2012 开发的开源复利计算器源码,不仅涵盖终值反推、等额本息月供等常用功能,还展示了 WinForms 界面与业务逻辑分离的工程结构。本文深入拆解其代码实现、编译部署与常见参数陷阱,帮助开发者快速复用或改造金融计算工 阅读详情

最近想给爸妈购买养老储蓄型保险,为了对比是否划算,简单的写了一个复利计算算法,留作记录。

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "复利计算器"
        btnCalculateCompound.setOnClickListener {
            if (TextUtils.isEmpty(etCapital.text) || TextUtils.isEmpty(etInterestRate.text) || TextUtils.isEmpty(etYears.text)) {
                return@setOnClickListener
            }

            tvMoney.text = calculateCompoundInterest(etYears.text.toString().toInt()
                    , etInterestRate.text.toString().toDouble()
                    , etCapital.text.toString().toDouble()).toString()
        }

        btnCalculateYearsCompound.setOnClickListener {
            if (TextUtils.isEmpty(etCapital.text) || TextUtils.isEmpty(etInterestRate.text) || TextUtils.isEmpty(etYears.text)) {
                return@setOnClickListener
            }

            tvMoney.text = calculateYearsCompoundInterest(etYears.text.toString().toInt()
                    , etInterestRate.text.toString().toDouble()
                    , etCapital.text.toString().toDouble(), etContinueYears.text.toString().toInt()
                    ?: 0).toString()
        }
    }

    /**
     * 单纯的算复利
     */
    fun calculateCompoundInterest(years: Int, interestRate: Double, capital: Double): Double {
        var currentYear = 0
        var currentMoney = capital
        while (currentYear < years) {
            currentMoney = calculateInterestRates(interestRate, currentMoney)
            currentYear++
        }
        return currentMoney

    }

    /**
     * 计算一年的利息
     */
    fun calculateInterestRates(interestRate: Double, capital: Double): Double {
        return capital * (1 + interestRate)
    }

    /**
     * 计算连续多年存同样的钱,一段时间之后的复利计算
     */
    fun calculateYearsCompoundInterest(years: Int, interestRate: Double, capital: Double, continueYears: Int): Double {
        var currentYear = 0
        var currentMoney = capital
        if (years <= continueYears) {
            while (currentYear < years) {
                currentYear++
                if (years == 1) {
                    currentMoney = calculateInterestRates(interestRate, currentMoney)
                } else {
                    currentMoney = calculateInterestRates(interestRate, currentMoney) + calculateInterestRates(interestRate, capital)
                }
            }
        } else {
            while (currentYear < continueYears) {
                currentYear++
                if (years == 1) {
                    currentMoney = calculateInterestRates(interestRate, currentMoney)
                } else {
                    currentMoney = calculateInterestRates(interestRate, currentMoney) + calculateInterestRates(interestRate, capital)
                }
            }

            var currentYearAftercontinueYears = 0
            while (currentYearAftercontinueYears < years - continueYears) {
                currentYearAftercontinueYears++
                currentMoney = calculateInterestRates(interestRate, currentMoney)
            }
        }

        return currentMoney
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <EditText
            android:id="@+id/etCapital"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:hint="本金"/>

    <EditText
            android:id="@+id/etInterestRate"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:hint="年利率"/>

    <EditText
            android:id="@+id/etYears"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:hint="年期"/>

    <EditText
            android:id="@+id/etContinueYears"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:hint="连续不间断多少年,每年固定存款"/>

    <Button
            android:id="@+id/btnCalculateCompound"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:text="计算复利"/>

    <Button
            android:id="@+id/btnCalculateYearsCompound"
            android:layout_width="match_parent"
            android:layout_height="44dp"
            android:text="计算每年固定存固定钱数,多年后所得利息"/>

    <TextView
            android:id="@+id/tvMoney"
            android:layout_width="match_parent"
            android:layout_height="44dp"
    />

</LinearLayout>

 

海康线扫相机平场矫正教程 1、白纸准备确保视野中有一张平整且无折痕的白纸,使其完全铺满相机的整个视野。2、行高设置将行高参数设定为 2048。3、灰度值控制相机端图像的灰度值应维持在 120 - 160 这个区间内。同时,最亮像素点与最暗像素点的灰度值差值不得超过 4 倍。在调整灰度值时,尽量开启增益功能。4、 图像模糊处理为减少白纸对平场矫正的影响,需将相机端获取的图像进行模糊化处理。具体操作是对镜头进行虚焦,使整体图像变得模糊。 阅读详情

相关推荐

OpenClaw 3.13 + Mac mini M4 集成 qmd 记忆存储:qmd embed 卡死 / 报错 sqlite-vec 不可用 终极解决教程

模型加速让 qmd 从国内镜像下载模型,避免网络超时;SQLite 扩展支持:修改 qmd 源码后,Bun 不再使用内置 SQLite,而是调用 Homebrew 安装的,该版本支持接口,可正常加载vec0.dylib向量扩展;OpenClaw 3.13 适配:核心逻辑与 OpenClaw 3.13 的 qmd 记忆调用逻辑完全兼容,无需额外调整;sqlite-vec 加载:qmd 自动通过sqlite-vec包获取vec0.dylib路径,调用完成向量扩展加载,实现高效向量搜索。

wuanxionglidui的博客 1304

复利增值计算器

例如:本金为50000元,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入,按复利计算公式来计算就是:50000×(1+3%)^30。复利终值计算器是计算以复利方式记息的终值或现值。复利的计算是考虑前一期利息再生利息的问题,要计入本金重复计息,即“利生利”“利滚利”。本期应预扣预缴税额=(累计预扣预缴应纳税所得额×预扣率-速算扣除数)-累计减免税额-累计已预扣预缴税额。N:利率获取时间的整数倍。F=P*(1+i)N(次方)

羊逸羊的博客 748

嵌入式存储入门:Emmc控制器与设备工作原理全解析(附Synopsys/Arasan架构图)

本文深入解析了嵌入式系统中Emmc控制器与设备的工作原理,重点剖析了其作为CPU与存储设备桥梁的核心架构。通过对比Synopsys和Arasan两家主流IP厂商的控制器设计,详细阐述了DMA引擎与FIFO缓冲模块如何协同工作以提升数据传输效率,并提供了从硬件PCB布局到驱动调试的实战指南,帮助硬件工程师与开发者优化系统性能。

weixin_29248653的博客 147

复利计算计算器_C程序计算复利

复利计算计算器Here you will get C program to calculate compound interest. 在这里,您将获得C程序来计算复利。 The program asks user to enter value of principle (p), rate (r) and time (t) and finally calculates the compound ...

culing2941的博客 2338

用电脑通过网口控制keysight示波器

Keysight HD304MSO示波器提供1GHz带宽、14位高精度ADC及10.1英寸触控屏,支持50μV低噪声信号捕获和1.3M波形/秒刷新率。配备4通道探头、逻辑分析仪接口及100Mpts存储深度,含故障诊断、FFT等高级功能。通过网线连接电脑安装TightVNC软件(示波器IP为169.254.163.24)可实现远程控制,相比U盘传输更高效。(149字)

johnboat的专栏 1136

使用Python开发TreeATE的测试脚本常见问题

ImportError: No module named py_compile 找不到 DevLangPython3.dll 以上2个问题都是没有安装正确的Python,当前TreeATE依赖32位Python 2.7版本,暂时不支持Python 3以上版本

蓝白云的专栏 1033

单利复利计算器使用方法

这个工具主要是小部分人用,因为以前要算个单利复利的时候,搜索出来的工具上来就要获取你的手机号,进去之后再收费。如果使用频繁的话,可以购买他们的更多服务,产品功能更多更完善。偶尔用一下可以先用这个工具。

四楼没电梯的专栏 3006

手把手教你用Wireshark国密版分析TLCP和IPSec协议(附下载地址)

本文详细介绍了Wireshark国密版在TLCP和IPSec协议分析中的实战应用,包括环境配置、协议解析、合规性检查及高级分析技巧。该工具针对商用密码算法(如SM2/SM3/SM4)进行了专项优化,支持GB/T 38636-2020 TLCP和GB/T 36968-2018 IPSec VPN等国家标准,帮助开发者与安全工程师高效完成密评分析任务。

weixin_29325955的博客 555

微信小程序之复利计算器

复利计算器可以帮助用户计算投资的复利收益,并通过图表直观展示收益增长趋势。

鸭梨的博客 1298

TCP Reno/CUBIC 拥塞控制算法对比:从 Tahoe 到 BBR 的 4 种核心策略演进

本文深入解析了TCP拥塞控制算法的演进历程,从经典的Tahoe、Reno到现代的CUBIC和BBR,详细对比了4种核心策略的实现机制与性能差异。通过分析拥塞窗口、流量控制等关键技术,揭示了不同算法在高带宽延迟网络中的优化方向,为网络协议栈优化提供理论依据和实践指导。

weixin_33725239的博客 442

通过傅里叶变换进行音频变声变调

在游戏或者一些特殊场景下为了提高娱乐性或者保护声音的特征,我们会对音频进行变声变调处理。

yang1fei2的博客 1817

怎么用计算机计算复利,如何用普通计算器计算复利

用普通计算器计算复利:具体如下:拿出你的计算器,随便输入一个数字,比如2,然后按一下乘号键,再按一下等号键,是否变成了4?再按一下等号键则变成了8,再按一下等号键……同样输入2,然后按一下除号键,再按一下等号键,是否变成了0.5?再按一下等号键则变成了0.25,再按一下等号键……若能通过上面的测试,则说明你的计算器具有这样的功能,并且可以因此得出一个规律:一、任何数的n次方,等于“按一下乘号,再按...

weixin_31295867的博客 7200

通信原理 | 窗函数 | 矩形窗 | 汉宁窗 | 汉明窗 | 布莱克曼窗 | 补零对频谱的影响

比如,原信号是一个周期的余弦信号,又给它补了9个周期长度的0,那么信号并不是10个周期的余弦信号,而是一个周期的余弦加一串0,补零并没有带来新的信息!频谱分辨率的含义是两个频率不同的信号在频率上可分,也就要求他们不能落到一个频域函数的主瓣上,所以,如果待分析的两个信号频率接近,而时域长度又短,那么在频域上他们就落在一个频域函数的主瓣内了,补再多的零也无济于事。而形状(主瓣宽度)是由补零之前的信号长度决定的,补零的作用只是细化了频域序列,并没有改变其主瓣宽度。所以,汉宁窗牺牲了分辨率,换来了旁瓣泄露的减小。

若北辰 1305

复利计算器4

1 import java.awt.Color; 2 import java.awt.Container; 3 import java.awt.Dimension; 4 import java.awt.FlowLayout; 5 import java.awt.Font; 6 import java.awt.Graphics; 7 import...

dengyajiu8101的博客 177

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复利计算器3.1

此版本复利计算器 基本实现了所要求的全部功能,并对输入的数据进行出错处理了,而且对代码进行了整合与复用package JSQ import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; ...

dingbi4857的博客 202

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复利计算器3.0

这是复利计算器3.0版本,新加了一些功能,实现了基本的单复利计算,但还未对输入出错进行处理,下一个版本将更加完好 1 package JSQ; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 impor...

dingbi4857的博客 267

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

复利计算器5

一、需求分析 复利计算再升级------------------------------------------------------------ 客户在大家的引导下,有了更多的想法: 这个数据我经常会填.....帮我预先填上呗?...... 把界面做得简单漂亮好操作一点呗? 能不能帮我转成个APP,我装到手机上就更方便了? 我觉得这个很有用,很多人可能都需要这些功能,...

dengyajiu8101的博客 302

复利计算器1.0

1 package JSQ; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 import javax.swing.border.EmptyBorder; 8 import javax...

dingbi4857的博客 212

复利计算器2.0

1 package JSQ; 2 3 import java.awt.EventQueue; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 import javax.swing.border.EmptyBorder; 8 import javax...

dingbi4857的博客 205
上一篇: Android 沉浸式状态栏
下一篇: 如何解决直播aar下面的classes.jar的子包和IM下面的jar包冲突的问题??
丸子哒哒哒
博客等级 码龄12年 31粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值