首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文字值(双精度类型)中奇怪的、意外的变化

文字值(双精度类型)中奇怪的、意外的变化
EN

Stack Overflow用户
提问于 2012-04-17 04:35:18
回答 1查看 137关注 0票数 0

我觉得这里有一个简单的解决方案,但我就是找不到它。我有一个常量字面值0.05。在我的程序的整个执行过程中,我发现double常量并没有被视为0.05,而是被视为0.049999...etc。

为什么会发生这种情况,我如何防止它发生?

提前感谢您的帮助!

-Matt

PS -我会发布一个快照来提供更多的信息,但显然我不能,因为我是一个新用户……老鼠。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-17 12:53:07

没有0.05的二进制表示法,因为1/20不是2的幂,所以浮点(双精度)表示法只能近似它。另一方面,0.5可以精确地表示出来。

如果v是文字,那么(v == 0.05)应该是'true‘

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10181308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档