Java第二课:整数、浮点数

浮点数

带小数点的数。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在Java中不会遇到定点数。人们借用浮点数这个词来表达所有带小数点的数。

当浮点数和整数放到一起运算时,Java会将整数转换成浮点数,然后进行浮点数的运算。

通常用double来表示浮点数的类型

浮点数计算是有误差的,当我们需要用精确的计算时,还是要用整数。

整数类型不能表达有小数部分的数。计算机里会有纯粹的整数这种奇怪的东西,是因为整数的运算比较快,而且占地方也小。其实人们日常生活中大量做的还是纯粹的整数的计算,所以整数的用处还是很大的。

10和10.0在Java中是完全不同的两个数。

例:身高英尺转换,5尺7寸转换为身高是多少米?

公式:(5+7/12)*0.3048=1.7018

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int foot;
		int inch;
		
		Scanner in = new Scanner(System.in);
		foot = in.nextInt();
		inch = in.nextInt();
		System.out.println((foot + inch/12)*0.3048);
	}
}

输出结果:

5 7

1.524

为什么不是1.7018?是因为inch定义的是int整数,而整数的运算只能得到整数,运算inch/12最后取整为0,所以最终结果错误。在以上代码基础上,有两种处理方法:一是将inch/12改为inch/12.0(整数与浮点数的运算结果为浮点数),另一种方法是将inch定义为浮点数double,给inch赋值7,自动变为7.0来参与运算。

因此,以下两种代码都可以得到正确的结果:

(1)inch/12.0

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int foot;
		int inch;
		
		Scanner in = new Scanner(System.in);
		foot = in.nextInt();
		inch = in.nextInt();
		System.out.println((foot + inch/12.0)*0.3048);
	}
}

(2)double inch:

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int foot;
		double inch;
		
		Scanner in = new Scanner(System.in);
		foot = in.nextInt();
		inch = in.nextInt();
		System.out.println((foot + inch/12)*0.3048);
	}
}


你可能感兴趣的:(浮点数,整数)