题目:将"/>

2016.03.29///Java学习记录②

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016.03.29///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学习记录②的主要内容,如果未能解决你的问题,请参考以下文章

uCOS-III 学习记录(10)——时间片轮转调度

[原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map(代码片

uCOS-III 学习记录——任务时间片运行

20180503 jq学习记录(jquery操作样式表,时间片,jq对象函数间传递)

SPRING05_BeanFactory概述HierarchicalBeanFactoryListableBeanFacotoryDefaultListableBeanFactory档案馆详解(代码片

CloudCompare学习记录教程