- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java浮点运算的精度问题(The precision problem of Java floating point arithmetic)
java浮点运算的精度问题(The precision problem of Java floating point arithmetic)
The precision problem of Java floating point arithmetic
The use of java.math.BigDecimal
The simple floating-point types float and double in Java do not perform operations. Not only Java, but also in many other programming languages.
If we compile and run, what does the following program see?
Public, class, Test {
Public, static, void, main (String, args[]) {
System.out.println (0.05 + 0.01);
System.out.println (1 - 0.42);
System.out.println (4.015 * 100);
System.out.println (123.3 / 100);
}
}
You are right! The result is
0.060000000000000005
Zero point five eight Zero Zero Zero Zero Zero Zero Zero Zero Zero Zero Zero Zero Zero One
Four hundred and one point four nine nine nine nine nine nine nine nine nine nine nine nine four
One point two three two Nine Nine Nine Nine Nine Nine Nine Nine Nine Nine Nine Nine Nine
The simple floating-point types float and double in Java do not perform operations. Not only Java, but also in many other programming languages. In most cases, the results of the calculations are accurate, but try several times (can do a loop), you can try similar mistakes. Now I finally understand why there is BCD code.
This problem is pretty serious. If you have $9.999999999999, your computer wont think you can buy 10 yuan of goods.
In some programming languages, specialized currency types are provided to handle this situation, but Java does not. Now, lets see how to solve the problem.
Rounding
Our first reaction was to do four to five. The round method in the Math class cannot set aside a few decimal places. We can only do this (keep two bits):
Public, double, round (double, value) {
Return Math.round (value * 100) / 100;
}
Unfortunately, the code above does not work properly. Pass this in to 4.015, and it will return 4.01 instead of 4.02, as we saw above
4.015*100=401.49999999999994
So, if were going to do exactly four to five, we cant do any arithmetic with simple types
Java.text.De
您可能关注的文档
- (java)面相对象程序设计 复习题((Java) face object programming review questions).doc
- (二)统考考务管理系统考点申报使用说明((two) examination, examination and management system, test site declaration, instructions for use).doc
- (二) 变量和常量((two) variables and constants).doc
- (纠正版)怀旧动画金曲夜((correction Edition) nostalgic animation Golden Night).doc
- (八年级数学)图形的全等(二)—全等三角形的识 …((Mathematics of grade eight) the congruence of figures (two) - congruent triangles...).doc
- (转)现在当兵一年能拿多少补贴((transfer) how much subsidy can we get for a year in the army).doc
- (项目管理者联盟专稿)定量分析在it项目管理中的应用研究(Application of quantitative analysis in project management of IT project).doc
- 003操作系统样卷(003 operating system volume).doc
- 005-浅谈医院电子病历系统的发展与应用(广州新海医院)(The development and application of 005- on the hospital electronic medical record system (Guangzhou Xinhai hospital)).doc
- 009中国古代战车(009 ancient Chinese Chariot).doc
最近下载
- 运动解剖学(山东联盟)智慧树知到课后章节答案2023年下聊城大学.docx VIP
- 河湖大典江西之修水.docx VIP
- 卷扬式启闭机的钢丝绳更换方法.pdf VIP
- DRG付费制度改革促进医院精细化管理.pptx VIP
- JJF(吉) 105-2022 快速核酸检测仪校准规范.docx VIP
- JJF(吉) 111-2022 一氧化氮、二氧化氮气体检测仪校准规范.docx VIP
- JJF(吉) 122-2023 漆膜划格器校准规范.docx VIP
- JJF(吉) 127-2023 容量筒校准规范.docx VIP
- JJF(吉) 148-2025 电能质量分析仪校准规范.pdf VIP
- JJF(吉) 57-2011 水质快速分析仪校准规范.docx VIP
原创力文档


文档评论(0)