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学习记录②的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map(代码片
20180503 jq学习记录(jquery操作样式表,时间片,jq对象函数间传递)
SPRING05_BeanFactory概述HierarchicalBeanFactoryListableBeanFacotoryDefaultListableBeanFactory档案馆详解(代码片