Java理论学时第二节。课后作业。
2015-10-08 07:39
459 查看
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象。
可以使用“==”和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 基本类型 long 的一些使用陷阱
- eclipse 报错 import ... cannot be resolved 处理方法
- java-web-j2e学习建议路线
- 一个牛人给java初学者的建议
- Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别?
- JAVA部分关键字简析
- Java 身份证工具类
- 对象(含有java.util.Date),集合等转换成json
- 15个易遗忘的Java问题
- Java
- Java开发中的23种设计模式详解(转)
- ElyarAnwar的Java笔记(一)分享是最好的记忆
- Spring入门到精通<一> 依赖注入
- 打包Spring Boot工程
- Axis1,Axis2,Xfire,CXF区别
- java中标签的作用
- java正则表达式 前后查找
- JavaWeb三层结构实例
- java 多线程学习笔记