0 0

ruby不会乘除法了,这是ruby1.9.3的bug吗?5

环境ruby1.8.7下
irb(main):002:0> 0.011*100
=> 1.1
这是正常的。

而在环境ruby1.9.3下
irb(main):008:0> 0.011*100
=> 1.0999999999999999

0.011 * 1000都不会有错,为什么乘100就出错呢?

有哪位大侠能指点一下吗?
2013年1月18日 21:20
  • 大小: 55.3 KB

2个答案 按时间排序 按投票排序

0 0

采纳的答案

用基于二进制的浮点数表示十进制小数,结果不正常才是正常的。所有使用IEEE 754浮点数标准的语言都有这个问题,跟Ruby本身无关。

irb(main):001:0> 0.5-0.4
=> 0.09999999999999998
irb(main):002:0> 0.4-0.3
=> 0.10000000000000003

scala> 0.5-0.4
res0: Double = 0.09999999999999998
scala> 0.4-0.3
res1: Double = 0.10000000000000003

2013年1月19日 06:15
0 0

1. 输出时四舍五入到实际需要的精度
2. 判断相等时不要用x == y,改用(x-y) < 1e-6  (假定你需要的精度是小数点后6位)

2013年1月19日 11:28

相关推荐

    ruby 1.9.3 p484稳定版本

    在1.9.3这个版本中,Ruby引入了诸多改进和性能提升,对于开发人员来说,它是一个可靠的工具,适用于Web开发、自动化脚本、系统管理等多种用途。 首先,让我们深入了解Ruby 1.9系列的重要特性。1.9版本相对于之前的...

    ruby 1.9.3

    至于压缩包中的"ruby-1.9.3-p327",这是Ruby 1.9.3的一个具体发行版,其中可能包含了源码、编译工具、文档以及其他必要的文件,方便用户在不同平台上安装和使用Ruby 1.9.3。通常,开发者会通过解压这个文件,然后...

    pygame支持python2.7 3.5 3.6 3.7 32和64位最新库

    1.9.3?cp27?cp27m?win32.whl pygame?1.9.3?cp27?cp27m?win_amd64.whl pygame?1.9.3?cp34?cp34m?win32.whl pygame?1.9.3?cp34?cp34m?win_amd64.whl pygame?1.9.3?cp35?cp35m?win32.whl pygame?1.9.3?cp35?cp35m?win_...

    ruby1.9.3下载

    ruby1.9.3版本

    ruby-1.9.3-p547.tar.gz

    总的来说,"ruby-1.9.3-p547.tar.gz"是Ruby编程语言的一个历史版本,对于那些需要兼容旧项目或者研究历史版本特性的开发者来说,这是一个重要的资源。通过学习和使用这个版本,你可以深入了解Ruby的语法、特性以及...

    ruby _1.9.3 _gem环境

    在描述中提到的“覆盖C:\Ruby193\lib\ruby\gems\1.9.1”,这是Ruby 1.9.3中Gem的默认安装路径。这个路径下的结构通常如下: - gems:存放已安装的Gem的目录,每个Gem都有自己的子目录。 - specifications:存储Gem的...

    Ruby installer 1.9.3

    首先,Ruby 1.9.3 对Ruby的编码支持进行了重大改进,特别是对UTF-8编码的全面支持,这使得开发者可以处理各种国际化文本,而不用担心字符编码问题。此外,这个版本还增强了对多线程的支持,虽然Ruby的全局解释器锁...

    ruby 1.9.3安装程序

    rubyinstaller-1.9.3-p125.exe

    ruby-1.9.3-

    Since its public release in 1995, Ruby has drawn devoted coders worldwide. In 2006, Ruby achieved mass acceptance. With active user groups formed in the world’s major cities and Ruby-related ...

    rubyinstaller-1.9.3-p385

    RubyInstaller-1.9.3-p385.exe是该版本的安装程序文件,用户只需运行这个可执行文件,就可以在Windows系统上轻松安装Ruby 1.9.3 p385。安装过程中,RubyInstaller会自动配置环境变量,使Ruby可直接在命令行中使用,...

    Ruby installer 1.9.3 .exe new

    Ruby installer 1.9.3 .exe new sass

    ruby 1.9.3 source code

    ruby 1.9.3 source code

    ruby-1.9.3-p551.tar.gz

    标题中的"ruby-1.9.3-p551.tar.gz"表明这是一个使用Ruby编程语言的特定版本,即1.9.3-p551,它被打包成一个gzip压缩的tar档案。Ruby是一种面向对象的、动态类型的脚本语言,广泛用于Web开发、服务器端脚本以及各种...

    ruby-1.9.3-preview1.zip

    这个“ruby-1.9.3-preview1.zip”文件是一个预览版的安装包,供开发者在正式版本发布前进行测试和评估。在深入探讨这个版本之前,我们先来了解一下 Ruby 语言的基本概念。 Ruby 是一种面向对象的、动态类型的编程...

    ruby-1.9.3-rpm:Ruby 1.9.3的RPM规范

    这是什么规格? 此规范是为了在基于RHEL的系统上推动以1.9.3+稳定地替换Ruby1.8.x。 我基于Ruby 1.9.3和Ruby Enterprise Edition的规范进行工作。如何安装RHEL / CentOS 5/6 yum install -y rpm-build rpmdevtools ...

    Ruby-1.9.3 window

    在 Windows 平台下一步安装 Ruby-1.9.3

    ruby-1.9.3-p125.tar.gz

    标题中的"ruby-1.9.3-p125.tar.gz"揭示了我们要讨论的是一个特定版本的Ruby编程语言——1.9.3的p125补丁级别。Ruby是一种面向对象的、动态类型的脚本语言,由Yukihiro Matsumoto(Matz)在1995年创建。它以其简洁、...

    rubyinstaller-1.9.3

    ruby安装包1.9.3 p392 ruby简单的脚本语言

Global site tag (gtag.js) - Google Analytics