码迷,mamicode.com
首页 > 编程语言 > 详细

2016.03.29///Java学习记录②

时间:2016-03-29 16:44:25      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:java学习

技术分享题目:将5尺7寸的身高转换成多少多少米 (5+7/12)*0.3048


看了题目后敲得代码,命名为①,错误:

package 身高5尺7寸;

import java.util.Scanner;

public class 身高5尺7寸 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.printf("请输入身高尺:");
		 String Chi = in.nextLine();                           
		
		System.out.printf("请输入身高寸:");
		 String Cun = in.nextLine();
		
		float ShenGao;
		ShenGao = (float) (( Chi + Cun / 12) * 0.3048);
		
		System.out.println("该人身高为" + ShenGao  +"m");
	}

}

错误:Cun/12  The operator / is undefined for the argument type(s) String, int


和同学商量后将①修改,命名为②,②正确:

package 身高5尺7寸;

import java.util.Scanner;

public class 身高5尺7寸 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.printf("请输入身高尺:");
		int Chi = in.nextInt();                           
		
		System.out.printf("请输入身高寸:");
		float Cun = in.nextFloat();

		float ShenGao;
		ShenGao = (float) (( Chi + Cun / 12) * 0.3048);
		
		System.out.println("该人身高为" + ShenGao  +"m");
	}

}

请输入身高尺:5

请输入身高寸:7

该人身高为1.7018001m


去掉“float ShenGao”,简化②,命名为③,正确:

package 身高5尺7寸;

import java.util.Scanner;

public class 身高5尺7寸 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.printf("请输入身高尺:");
		int Chi = in.nextInt();                           
		
		System.out.printf("请输入身高寸:");
		float Cun = in.nextFloat();
		
		System.out.println("该人身高为" + (( Chi + Cun / 12) * 0.3048)  +"m");
	}

}

请输入身高尺:5

请输入身高寸:7

该人身高为1.7018000484466553m


看了视频(程序设计入门—Java语言(翁恺))后将③修改,命名为④,正确:

package 身高5尺7寸;

import java.util.Scanner;

public class 身高5尺7寸 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.printf("请输入身高尺:");
		int Chi = in.nextInt();                           
		
		System.out.printf("请输入身高寸:");
		int Cun = in.nextInt();
		
		System.out.println("该人身高为" +  (( Chi + Cun / 12.0) * 0.3048)  +"m");
	}

}

请输入身高尺:5

请输入身高寸:7

该人身高为1.7018m



有视频看到另一种代码错误,命名为⑤:

package 身高5尺7寸;

import java.util.Scanner;

public class 身高5尺7寸 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.printf("请输入身高尺:");
		int Chi = in.nextInt();                           
		
		System.out.printf("请输入身高寸:");
		int Cun = in.nextInt();
		
		System.out.println("该人身高为" +  (( Chi + Cun / 12) * 0.3048)  +"m");
	}

}

请输入身高尺:5

请输入身高寸:7

该人身高为1.524m

“Cun/12”为整数除整数,Cun小于12,所得结果为零点几几几,由于显示int型,所以为零。



②③④之所以正确,是因为将“Cun/12”两个数中其中一个转换为了浮点型,不再是整型除整型,

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


double和float什么区别【来自百度】:

对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)


那么问题来了,为什么②最终所得结果小数点后有8位,③最终所得结果小数点后有16位,④最终所得结果只有小数点后4位?我还在研究



本文出自 “梧桐丫” 博客,转载请与作者联系!

2016.03.29///Java学习记录②

标签:java学习

原文地址:http://lytong.blog.51cto.com/10024888/1758056

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!