如果一个人的身高是5英尺7,他的身高是一米几呢?
(5+7/12)*0.3048=1.7018米
怎样写一个程序,用户输入英尺,输出米:
学编程重要的是学想法。
检查输入的数目:
package hello;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int foot;
int inch;(注:int在这里是一个整数。)
Scanner in=new Scanner(System.in);
foot =in.nextInt();
inch =in.nextInt();
System.out.println(10/3);
System.out.println(“foot=”+foot+”,inch=”+inch);
System.out.println((foot+inch/12)*0.3048);
}
}
输入:5 7
输出:foot=5,inch=7
1.524
package hello;
import java.util.Scanner;
public class Hello {
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(10/3);
System.out.println(“foot=”+foot+”,inch=”+inch);
System.out.println((foot+inch/12)*0.3048);
}
}
5 7
3(10/3只能是3, int inch;int在这里是一个整数。因为两个整数的运算的结果只能是整数。inch/12只能是0,因为inch小于12。如果有一个数不是整数,相除后的结果就不是整数。可以把12改成12.0,商就不是整数了。)
foot=5,inch=7
1.524
10和10.0在Java中是完全不同的数;
10.0是浮点数。
package hello;
import java.util.Scanner;
public class Hello {
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(10/3.0);
System.out.println(“foot=”+foot+”,inch=”+inch);
System.out.println((foot+inch/12.0)*0.3048);
}
}
输入:5 7
得到:
3.3333333333333335
foot=5,inch=7
1.7018
浮点数
带小数点的数值。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在Java中你不会遇到定点数。人们借用浮点数这个词来表达所有的带小数点的数。
改进
从(foot+inch/12)*0.3048改为:
(foot+inch/12.0)*0.3048
当浮点数和整数放到一起运算时,Java会将整数转换成浮点数,然后进行浮点数的运算。
double
inch是定义为 int类型的变量,把int换成 double,我们就把它改为 double 类型的浮点数变量了。
double的意思是“双”,它本来是“双精度浮点数”的第一个单词,人们用来表示浮点数类型。
package hello;
import java.util.Scanner;
public class Hello {
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(10/3);
System.out.println(“foot=”+foot+”,inch=”+inch);
System.out.println((foot+inch/12)*0.3048);
}
}
5 7
3
foot=5,inch=7.0
1.7018
浮点运算的精度
浮点计算是有误差的:
System.out.println(1.2-1.1);
package hello;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int foot;
double inch;
System.out.println(1.2-1.1);
Scanner in=new Scanner(System.in);
foot =in.nextInt();
inch =in.nextInt();
System.out.println(10/3);
System.out.println(“foot=”+foot+”,inch=”+inch);
System.out.println((foot+inch/12)*0.3048);
}
}
0.09999999999999987
整数
整数类型不能表达有小数部分的数,整数和整数的运算结果还是整数。计算机里会有纯粹的整数这种奇怪的东西,是因为整数的运算比较快,而且占地方也小。其实人们日常生活中大量做的还是纯粹整数的计算,所以整数的用处还是很大的。