Java理论学时第二节。课后作业。
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象。
可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
在输出中,先出现” ”的话,后面的加号被理解成字符串相加。
”X + Y”+ (X +Y) 与 X + Y = ”X + Y”相同。
为什么double类型的数值进行运算得不到“数学上精确”的结果?
这个涉及到二进制与十进制的转换问题。
N进制可以理解为:数值×基数的幂,如十进制数为123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);而二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。
package Sum;
import javax.swing.JOptionPane; // import class JOptionPane
public class Addtion
{
public static void main(String[] args)
{
String firstNumber,secondNumber; // first and second string entered by user
int number1,number2;// first and second number to add
double sum,poor,mul,div; // sum,poor,multiply,division of number1 and number2
// read in first number from user as a string
firstNumber = JOptionPane.showInputDialog( "Enter first integer" );
// read in second number from user as a string
secondNumber = JOptionPane.showInputDialog( "Enter second integer" );
// convert numbers from type String to type int
number1 = Integer.parseInt(firstNumber);
number2 = Integer.parseInt(secondNumber);
// count the numbers
sum = number1 + number2;
poor = number1 - number2;
mul = number1 * number2;
div = number1 / number2;
// display the results
JOptionPane.showMessageDialog(null, "The sum is " + sum, "Results",JOptionPane.PLAIN_MESSAGE );
JOptionPane.showMessageDialog(null, "The poor is " + poor, "Results",JOptionPane.PLAIN_MESSAGE );
JOptionPane.showMessageDialog(null, "The multiply is " + mul, "Results",JOptionPane.PLAIN_MESSAGE );
JOptionPane.showMessageDialog(null, "The division is " + div, "Results",JOptionPane.PLAIN_MESSAGE );
System.exit( 0 ); // terminate the program
}
}
Java理论学时第二节。课后作业。的更多相关文章
- Java理论学时第一节。课后作业。
设计思路:用nextFloat()函数将从键盘输入的值分别赋给多个变量,然后直接输出相加结果. 流程图: 源代码: 实验结果:
- 大道至简第一章和java理论学时第一节。感受。
这周上了本学期的第一节java课程.课件上说了一些学习java的基本思想.举了个“愚公移山”的例子.这可能就像刚接触一门新的语言,来练习输出“HelloWorld”一样,已成惯例. “愚公移山”的这个 ...
- java理论学时第七节。课后作业。
对AboutException.java的理解.在try中如果发出某类系统识别的错误,会以throw的形式抛出,在catch中可以将其截获,不显示在前端,可以选择执行别的代码. ArrayIndexO ...
- Java理论学时第五节。课后作业。
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:先声明一个数组,再利用for循环对每一个元素赋随机生成的值,在求所有数的和,再根据要 ...
- Java理论学时第四节。课后作业。
请查看String.equals()方法的实现代码,注意学习其实现方法. public class StringEquals { public static void main(String[] ar ...
- Java理论学时第六节。课后作业。
package Fuction; class Grandparent { public Grandparent() { System.out.println("GrandParent Cre ...
- Java理论学时第三节。课后作业。
如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算? 运行结果. 根据我的总结,它们三个的优先级是:构造方法 > 字段初始值 > 初始化块. 当多个类之间有继承关系 ...
- JAVA学习第二周课后作业
Java 的基本运行单位是类.类由数据成员和函数成员组成.变量之间可以相互转换.String是一个类.static是静态.全局的意思.经过测试,Java的枚举类型定义的Size与String一样都不是 ...
- java语言基础第二讲 课程作业02 总结
一.编程的好习惯 1.注释习惯.单行注释://, 多行注释:/* */ . 2.程序中添加适当的空白:4个空格. 3.文件名必须与公有类名一致,即public class 类名. 4.java中 ...
随机推荐
- 不使用SwitchHosts修改C:\Windows\System32\drivers\etc\hosts文件
1.nginx中的nginx.conf完成修改,配置好了端口和域名www.xuecheng.com 2.找到Hosts文件,将Hosts文件复制到桌面.(Windows 10系统Hosts文件路径为: ...
- 10.19JS日记
1.函数 关键词(function) var是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成 var可以在内存模块提前完成(js代码执行前),所以有变量提升这个功能 c ...
- 10.15 JS日记
1.JS 介绍 js的全称是JavaScript,它是一门前台语言 Java是一门后台语言 ,它们两个之间毫无关系 JavaScript的作者是布兰登,艾奇 前台语言:运行在客户端 后台语言:与数据库 ...
- cookie session ORM 操作
. ORM增删改查操作 http://www.cnblogs.com/liwenzhou/p/8660826.html . 单表增删改查 . 单表的双下划线操作 . 外键的跨表查询 . 正向查询 . ...
- c# Parallel.For 并行编程 执行顺序测试
因为有个for 实际执行结果尽管是按照for里边的顺序执行,但处理器让哪个分线程先执行,谁先处理完就不一定了. 对于要求结果需要先后顺序的,比如对text内容的操作, 用并行 Parallel.For ...
- (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上) 准备工作 1.共享资源服务器为 ShareServer,IP地址为:192.168. ...
- Java VisualVM 插件地址
打开Java VisualVM检查更新插件时,默认的连接连不上,通过浏览器访问之后发现默认的服务器已经404,新地址已经迁移到github,下面这个地址里面有不同版本jdk对应的插件中心地址. htt ...
- HTTP 1.0 Status Code Definitions
part of Hypertext Transfer Protocol -- HTTP/1.1RFC 2616 Fielding, et al. 10 Status Code Definitions ...
- 开学习实用的笔试面试技术:linux
1.F:\Movies\尚学堂大数据周末班原版(传智大数据第三期):课程比较乱,按照顺序都学了吧 1.linux基础:原来不会linux就废了.一定要装虚拟机.2018-05-27开搞. 服务器只能装 ...
- js对象通过属性路径获取属性值 - getPropByPath
function getPropByPath(obj, path) { let tempObj = obj; path = path.replace(/\[(\w+)\]/g, '.$1'); pat ...