呵呵最近好久没写日记了学java感觉也有一点体会我可能是新手用DOS命令下执行的吧发现写程序还是有很多错误令人郁闷的是那些错误我死活都检查不出来呵呵今天总算是调试成功了吧还算比较高兴给大家看看这段代码顺便解释一下代码的意思我是新手说的不对的西方希望大家给多多指点。
【简介】这个是计算一个贷款支付额的程序,本程序要求用户输入利率,年数和贷款的总额,程序计算月支付金额和总偿还金额,能够算出月支付额。下面是编写程序的步骤:
1.提示用户输入年利率,年数和贷款的总额
2.利用年利率算出月利率
3.通过前面的公式计算月支付额
4.计算总支付额,他是月支付额乘以12再乘以年数,
5在消息对话框中显示月支付额
import javax.swing.JOptionPane;
public class ComputeLoan {
/*Main method*/
public static void main(String[] args){
//Enter yearly interest rate
String annualInterestRateString =JOptionPane.showInputDialog(
"Enter yearly interest rate, for example 8.25:");
//Convert string to double
double annualInterestRate =
Double.parseDouble (annualInterestRateString);
//Obtain monthly interest rate
double monthlyInterestRate = annualInterestRate / 1200;
//Enter number of years
String numberOfYearsString = JOptionPane.showInputDialog(
"Enter number of years as an interger, \nfor example S:");
//Convert string to int
int numberOfYears = Integer.parseInt(numberOfYearsString);
//Enter loan amount
String loanString = JOptionPane.showInputDialog(
"Enter loan amount,for example 120000.95:");
//Convert String to double
double loanAmount = Double.parseDouble(loanString);
//Calculate payment
double monthlyPayment = loanAmount * monthlyInterestRate / (
1-1 / Math.pow(1+ monthlyInterestRate,numberOfYears * 12));
double totalPayment = monthlyPayment * numberOfYears * 12;
//Format to keep two digits after the decimal point
monthlyPayment = (int)(monthlyPayment * 100) /100.0;
totalPayment = (int)(totalPayment * 100) / 100.0;
//Display results
String output = "The monthly payment is" +monthlyPayment +
"\nThe total payment is" + totalPayment;
JOptionPane.showMessageDialog(null,output);
}
}
其中showInputDialog显示一个输入对话框。输入双精度值的利率,然后点击OK接受该输入。该值以字符串的形式返回,赋值给String变量annualInterestRateString。Double.parseDouble(annualInterestRateString)该字符串转换为一个double值。如果输入的不对的不是数值,就会出现运行时的错误。到时候可能等我学到了处理异常的时候能够让程序继续执行吧。
方法中的每个新变量必须声明且只能声明一次,要为变量选择最正确的数据类型。例如,尽管可以将numberOfYears声明为long、float或者是double型,但是最好声明为Int 注意,numberOfYears可能最适合的类型是byte。然而,为了简便起见,用int表示整型 double表示浮点型
<注意>如果在对话框中点击 cancel,无字符串返回,系统出现运行时错误
分享到:
相关推荐
Java Web开发是软件行业中一个广泛讨论的话题,涵盖了诸如Servlet、JSP、JDBC、MVC框架、企业级组件以及各种工具和技术。这份"java小记.rar"压缩包很可能包含了作者多年从事Java Web开发的经验总结,可能包括代码...
GeoStudio学习小记
本项目是一款基于Java和SpringBoot框架的微信小程序开源记账账本设计源码,包含705个文件,涵盖128个JavaScript文件、111个Java源文件、110个wxss样式文件、107个json配置文件、103个wxml模板文件、68个TypeScript...
### D3.js 学习小记 #### SVG基础与D3.js绘图实践 ##### SVG基础 SVG(可缩放矢量图形)是一种基于XML的矢量图像格式,用于描述二维图形以及图形应用。SVG 图像可以被放大、缩小而不会失真,非常适合于网页制作。...
在Java编程语言中,`transient`关键字是一个非常重要的概念,它与对象的序列化过程紧密相关。序列化是将一个对象的状态转换为字节流,以便存储或在网络中传输。当一个类实现了`Serializable`接口,该类的对象就可以...
《VC学习小记》 学习Visual C++,也就是VC,是一项技术性强且深入的工程,尤其对于初学者来说,需要有良好的C/C++基础作为支撑。C++的基础知识包括语法、面向对象编程概念以及模板等高级特性,这些都是使用MFC...
【LocalCache 学习小记1】 LocalCache 是一种本地高速缓存机制,它主要用于提升数据获取速度,尤其是在处理大量数据时,可以有效避免频繁访问远程数据库或分布式缓存,如 Redis 中的热键问题。LocalCache 不是...
【中控智慧考勤机Java二次开发Demo】是一款专为中控考勤设备设计的Java编程示例,旨在帮助开发者更高效地进行考勤系统的定制与集成。在中控科技的官方网站和售后服务中,通常提供的SDK和示例是基于C#的,但针对Java...
本章节将重点围绕104规约的学习小记,包括固定长度报文的基本结构、常见帧的类型、报文示例及总召唤命令等几个方面进行详细解析。 #### 二、固定长度报文 固定长度报文是104规约中的一种基本报文形式,其结构相对...
时间和日期中常用到的几个类: java.util.Date, java.util.Calendar, java.util.GregorainCalendar, java.text.DateFormat, java.text.SimpleDateFormat
例如,你可以编写Java程序来解析STL文件,或者构建一个Web应用程序,让用户上传STL文件并预览模型。Java的跨平台特性意味着你的程序可以在任何安装了Java运行环境的设备上运行。 Python3则以其简洁的语法和丰富的库...
Redis是一款高性能的键值存储系统,常用于缓存和数据库应用。本文主要探讨Redis的安全问题,包括连接方式、数据加密、认证机制、数据备份以及主从复制等方面。 首先,Redis的默认配置可能存在安全风险,例如它允许...
单元测试学习小记软件测试什么是单元测试单元在程序里可以简单的理解为一个模块,一个方法。单元测试也就是在完成每个模块后都进行的测试。从确保每个模块没有问题,从而提高整体的程序质量。做单元测试的好处对于...
标题 "SQL学习小记" 暗示了这篇博客文章主要关注的是SQL语言的学习和实践。SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。以下是对这个主题的详细探讨: SQL基础: 1. 数据类型:SQL...
在“android开发小记”这个主题中,我们可以深入探讨Android应用程序开发的相关知识,特别是通过查看提供的压缩文件中的代码示例。这些文件名如lesson_8_code.zip至lesson_20_codel.zip,以及不同的Mp3Player版本,...
猿人学第二届第一题解题小记
遇到了一个需求,想要扫码后,进入微信小程序的某一个页面,这就要求二维码携带参数。 微信小程序开发文档很简单,但不太具体。 经百度和折腾,在express中成功获得了带参数的二维码。 总结以下几步,供参考。 1....
咬人草,一种看似普通的草本植物,却拥有独特的防御机制。它生长在新疆地区,叶瓣上布满尖锐的小刺,一旦触碰,就会引起如被毒蜂蜇般的肿痛。这篇文章《咬人草小记》便是对这种植物的描述,以及作者与它亲密接触后的...
标题 "myeclipse试用小记----Hibernate多对一单向关联(1)" 提到的是在MyEclipse集成开发环境中使用Hibernate框架实现多对一单向关联的实践记录。这个主题涉及到Java后端开发中的数据库关系映射和对象持久化技术。 ...