浮点数
带小数点的数。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在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); } }
时间: 2024-10-26 18:12:20