- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Double精度控制lwy
Double精度控制
李雯燕
问题位置:Logic Java P245:上机2 变量、数据类型和运算符·第三部分作业·第2题
题目:编写一个程序,根据矩形的长(1.9m)和宽(0.3m),计算矩形的面积和周长。
提示:计算面积的公式:面积 = 长 * 宽
计算周长的公式:周长 = 2 * ( 长 + 宽 )
实现代码:
输出结果:
出现问题,矩形的周长应该是4.4米。
原因:
实型数据在内存中存在的时候是以指数形式储存的一般前三个字节储存小数部分后一个字节储存指数部分比如380在内中的储存是小数部分0.38,指数部分3,即0.38*103前面的是小数在转换为二进制数时有时会出现误差小数转二进制数部分可能出现无限循环以0.35转换为二制数为例乘2纯小数部分整数部分 2*0.375=0.7500.750 0 2*0.750=1.5 0.5 1 2*0.5=1.0 0 1 结果就为0.011从上到下纯小数为0终止否则一直进行下去所以实型数据的储存并不准确但double是个字节一般前7个字节56位用来储存小数部分即使在转换的时候出现无限循环那也是二进制的第56位了所以误差极小一般的数据都能准确的表示出来乘2纯小数部分整数部分 0.44=0.88 0.88 0
2*0.88=1.76 0.76 1
2*0.76=1.52 0.52 1
2*0.52=1.04 0.04 1
2*0.04=0.08 0.08 0
2*0.08=0.16 0.16 0
2*0.16=0.32 0.32 0
2*0.32=0.64 0.64 0
2*0.64=1.28 0.28 1
2*0.28=0.56 0.56 0
2*0.56=1.12 0.12 1
2*0.12=0.24 0.24 0
2*0.24=0.48 0.48 0
2*0.48=0.96 0.96 0
2*0.96=1.92 0.92 1
2*0.92=1.84 0.84 1
2*0.84=1.68 0.68 1
2*0.68=1.36 0.36 1
2*0.36=0.72 0.72 0
2*0.72=1.44 0.44 1
2*0.44=0.88 0.88 0
厖
.转换操作陷入无限循环,结果是0.111000010100011110。超出56位的部分就会被抛弃,所以造成表示不准确的情况发生。所以在这道题目中,得到了一个不准确的结果。
解决办法:
使用DecimalFormat类对数字格式进行限制的方法。
输出结果:
建议:该方法是比较常用的解决此类问题的手段,但是在学生学习Java编程初期,没有接触过类和对象的概念,对此方法不容易理解和记忆。如果使用的话,需要死记硬背,建议在学生学习完类和对象概念之后再回过头来介绍该方法。
使用NumberFormat类对数字精度进行限制的方法。
输出结果:
建议:该类用法比较灵活,可以细致定义整数位小数位至多至少保留的精度,但是在学生学习Java编程初期,这个类的用法对学生而言太过复杂,容易让学生产生畏难心理,所以不建议介绍。
使用System.out.printf方法对输出格式进行限制的方法。
输出结果:
建议:Java中的printf方法和C语言中的用法一致,操作步骤简单,并且没有涉及到类和对象的概念,只需要向学生简单介绍“转换字符串”的概念即可,所以建议学习Java的初期使用这种方法去控制Double类型的精度。
public class Class1 {
public static void main(String[] args) {
double a = 1.9;//矩形的长
double b = 0.3;//矩形的宽
double s = a * b;//计算矩形的面积
double l = 2 * ( a + b );//计算矩形的周长
System.out.println(矩形面积是:+ s +平方米);//输出矩形面积
System.out.println(矩形周长是:+ l +米);//输出矩形周长
}
}
矩形的面积是:0.57平方米
矩形的周长是:4.3999999999999995米
import java.text.DecimalFormat;//引入java.text包public class Class1 {
public static void main(
您可能关注的文档
- Windows7系统下让整个磁盘分区隐藏.doc
- DNF终极走位知识.doc
- Windows7系统图标大小随意调.doc
- dnf第四季boss血量.doc
- DNF蓝拳技术讲解.doc
- DNF装备掉落分布大全.doc
- Windows7系统家长控制.doc
- Windows7系统维护功能之磁盘碎片整理.docx
- DNF远古三地图级打法.docx
- Windows7系统自带的光盘刻录功能用法详解.doc
- 提升小学生逻辑思维能力的课程设计教学研究课题报告.docx
- 特殊教育资源教室的建设与管理研究教学研究课题报告.docx
- 体育活动与学科学习并行的策略教学研究课题报告.docx
- 小学班级管理与学业成绩的关系分析教学研究课题报告.docx
- 小学道德与法治课程实践创新研究教学研究课题报告.docx
- 小学英语教学中信息技术应用的调研研究教学研究课题报告.docx
- 小学英语口语教学中的互动策略教学研究课题报告.docx
- 信息技术辅助初中教学的研究教学研究课题报告.docx
- 形成性评估在课堂教学中的应用效果教学研究课题报告.docx
- 2024-2025学年初中信息技术(信息科技)八年级下册人教版(2015)教学设计合集.docx
最近下载
- 农民工工资支付计划.pdf VIP
- 市政验·绿-4 种植穴、槽的挖掘工程检验批质量验收记录.pdf VIP
- DB53∕T 67.3-2017 建筑消防安全检测评价 第3部分:灭火设施.pdf
- ISO14000环境管理体系练习题.pdf VIP
- 产品质量保证承诺书15篇.pdf VIP
- 2025(部编版)语文九年级上册 第二单元 复习课件.pptx
- 一级建造师工程经济讲义.pdf VIP
- 关于成都市数字化金融创新服务的研究.pdf VIP
- 2023年02月安徽合肥市教育局直属事业单位选调工作人员笔试参考题库+答案详解.docx VIP
- 《单位消防安全管理 第2部分:建筑消防设置维护》 DB53T 270.2-2017.pdf VIP
文档评论(0)