Java 02 课后作业

第一题:

//在消息框中输入两个数,并用消息框显示出两个数的加减乘除的结果

import javax.swing.JOptionPane;

public class Calculator {
    public static void main(String args[])
    {
        String firstNumber,secondNumber;
        int number1,number2,sum,minus,plus,divide;
        
        firstNumber=JOptionPane.showInputDialog("请输入第一个数字:");
        secondNumber=JOptionPane.showInputDialog("请输入第二个数字:");
        
        number1=Integer.parseInt(firstNumber);
        number2=Integer.parseInt(secondNumber);
//计算出两个数字的加减乘除的结果        
        sum=number1+number2;
        minus=number1-number2;
        plus=number1*number2;
        divide=number1/number2;
        
        JOptionPane.showMessageDialog(null,"两个数的和为:"+sum
                                            +","+"两个数的差为:"+minus
                                            +","+"两个数的积为:"+plus
                                            +","+"两个数的商为:"+divide,"结果",JOptionPane.PLAIN_MESSAGE);

        System.exit(0);
    }
}

第二题:

①EnumTest.java结果:

False

False

True

SMALL

MEDIUM

LARGE

第一个结果是在比较两者是否相同,第二个是判断是否为基本类型,第三个是赋值并进行比较,后面三个是将所有数值一次输出的结果。

enum可用来创建一个枚举类型,枚举类型属于引用类型,枚举不属于原始的数据类型,每个具体值都会引用枚举里的一个对象,可使用“==”和“equals()”来判断两个值是否相等。

 

②在计算机内,定点数有3种表示法:原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

同名变量的屏蔽原则,就是指变量的会根据离他最近的赋值来获得数值,而关系较弱,相距较远的赋值会不起作用。

 

③Double得到的结果不精确,主要归因于浮点数在计算中的表示方法,浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示某个实数,这个实数由有一个整数或定点数乘以某个基数的整数次幂得到,无法精确地保存浮点数字实际的大小。

解决方法:可以使用java.math.BigDecimal来计算,使用其中的加减乘除的函数,得到的结果会更加精确一些,除法除不尽的话,会保留10位后进行四舍五入。

 

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

 的结果为:

X+Y=100200

300=X+Y

第一个输出,只是单纯的将数字和字符串拼接在一起,没有别的含义,而第二个输出,输出的是“X+Y”的结果,故结果不相同。

posted @ 2015-10-08 08:42  YangLna  阅读(185)  评论(0编辑  收藏  举报