首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浮在红宝石里的圆虫?

浮在红宝石里的圆虫?
EN

Stack Overflow用户
提问于 2012-01-05 12:09:36
回答 2查看 846关注 0票数 2
代码语言:javascript
复制
ruby-1.8.7 > 1.55.round(1)
 => 1.6 
ruby-1.8.7 > 1.555.round(2)
 => 1.56 
ruby-1.8.7 > 1.155.round(2)
 => 1.16 
ruby-1.8.7 > 10.156.round(2)
 => 10.16
ruby-1.8.7 > 10.155.round(2)
 => 10.15 
ruby-1.8.7 > 10.165.round(2)
 => 10.16

怎么回事?我是不是遗漏了什么?

编辑

代码语言:javascript
复制
ruby-1.9.2 > 10.155.round(2)
 => 10.15 
ruby-1.9.2 > 10.165.round(2)
 => 10.16
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-05 12:31:05

浮点值不精确。您的10.165在纸/屏幕上表示为10.165,但在内存中它表示的东西非常接近10.165.它是向上的还是向下的,是一个错误的方向的问题。

如果需要精确处理小数,可以将它们表示为BigDecimal (用十进制/精度表示法),也可以表示为Rational (用分数分子/分母表示法)。

票数 4
EN

Stack Overflow用户

发布于 2012-01-09 13:06:34

Python很好地解释了二进制浮点数的基本限制:http://docs.python.org/tutorial/floatingpoint.html

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

https://stackoverflow.com/questions/8742268

复制
相关文章

相似问题

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