`
icekiller110
  • 浏览: 71432 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Ruby中的浮点计算近似值的问题

阅读更多
在Ruby中的浮点运算使用的是二进制的计算方式(为了更高效的使用硬件),所以像1/10,1/100,1/1000,0.1等都是近似表示。
如果你判断
   0.4-0.3 == 0.1 # 返回false。
为了避免此问题,在浮点运算结果做boolea判断的时候要先进行round(取有效数字),然后在进行比较。
例如 (0.4-0.3).round(2) == 0.1 # 返回true.

同样JS中也有此问题,JS的float可以使用toFixed的方法。
分享到:
评论

相关推荐

    ruby中英文api

    在Ruby中,API主要体现在类、方法、模块和库的形式上,它们提供了丰富的功能供开发者使用。Ruby的官方API文档详细记录了每种内置类型、类、模块、方法以及它们的使用方式。"ruby中英文api"资料集可能包含了对这些...

    ruby中文文档.chm

    在Ruby中,一切都是对象,包括基本的数据类型如字符串、数字和布尔值。这种特性使得Ruby在处理复杂问题时具有很高的灵活性。文档中将详细讲解Ruby的基础语法,如变量声明、控制结构(条件语句、循环)、函数和方法...

    ruby 中文文档 必备资料

    在Ruby中,异常类是继承自`StandardError`的,你可以自定义异常类来处理特定类型的错误。 Ruby on Rails是Ruby最著名的Web开发框架,它遵循MVC(模型-视图-控制器)架构模式。这份文档可能也涵盖了Rails的相关内容...

    ruby中文资源大全

    在工作中,他希望有一种比 Perl 强大,比 Python 更面向对象的语言。从1993年2月,他开始设计一个全新的自己的语言,1994年12月发布了第一个 alpha版本,并且将这种新语言定名为Ruby(红宝石)。 本教程内含多部中文...

    ruby中文文档中心资料

    在Ruby中,Web开发最知名的框架是Ruby on Rails,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发。Rails提供了许多约定优于配置的特性,使得开发者可以更快速地构建功能丰富的网站。 总结起来,"ruby...

    Ruby中文教程及相关源代码

    3. **函数与方法**:Ruby中的函数定义和调用,块和 Proc 对象,以及方法的定义、重载和作用域。 4. **面向对象编程**:Ruby是纯面向对象的语言,讲解类的定义、继承、模块(Module)的使用,以及对象创建和消息传递...

    ruby中文教程,从基础到深入的让你学习ruby

    变量在Ruby中有四种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。数据类型包括字符串、数字、布尔值、数组、哈希等。控制结构包括条件语句(如...

    ruby中文文档

    3. **块、 Proc 和 Lambda**:Ruby中的块是一段可以被传递和执行的代码,类似于其他语言中的闭包或匿名函数。Proc和Lambda是两种表示代码块的数据结构,它们可以存储和调用代码块,而且在行为上与函数类似。 4. **...

    ruby 中文 教程 从入门到精通

    - **关键字**:Ruby中有多种关键字用于控制流和定义程序结构,例如`if`、`else`、`elsif`、`while`、`for`等。 - **运算符**:包括算术运算符(+、-、*、/)、比较运算符(==、!=、<、>)和逻辑运算符(&&、||、!)...

    Ruby中文文档.zip

    Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp ...

    ruby中文手册 chm

    Ruby是一种面向对象的、动态类型的编程语言,由Yukihiro "Matz" Matsumoto于1995年创建。它的设计目标是让代码更加简洁、优雅,同时提供高度的可读性和可维护性。Ruby中文手册CHM是为中文用户准备的详尽参考资料,...

    ruby语言帮助文档(简体中文)

    Ruby中的类和模块是构建对象的基础,类用于定义对象的结构和行为,模块则用于组织代码和实现多继承。 3. **方法**:Ruby的方法可以看作是对象的行为,可以定义在类、模块或者对象上。方法调用可以用点操作符(`.`)...

    Ruby中文帮助文档

    Ruby中文文档.CHM 方便ruby or rails学习.

    Best of Ruby Quiz

    7. **异常处理**:Ruby中的`begin..rescue..else..ensure`结构用于异常处理,书中可能会有相关问题,教你如何优雅地处理错误。 8. **Gem生态系统**:Ruby的库管理工具Gem提供了丰富的第三方库,如Nokogiri(XML处理...

    关于ruby学习的资料

    在Ruby中,`trap`常用于设置信号处理器,允许程序在接收到特定系统信号时执行自定义操作,这在编写可靠和响应迅速的系统中非常有用。 Ruby的核心特性包括: 1. 面向对象:Ruby是一种纯面向对象的语言,每一个数据...

    Ruby-阿里云API文档中的公共参数计算

    本教程将详细介绍如何在Ruby中计算和构造这些公共参数。 1. **AccessKeyId和SecretAccessKey**: - AccessKeyId是阿里云账号的唯一标识,用于验证请求来源的合法性。 - SecretAccessKey是用于加密签名的密钥,...

    Ruby-timediff计算两个时间相差多少的Gem

    通过这个Gem,你可以轻松地处理各种时间差问题,无论是简单的秒级计算,还是复杂的跨年跨月的日期差计算,都能游刃有余。在实际开发中,尤其是在处理定时任务、日程安排或者数据分析时,"Ruby-timediff"能大大提升...

    详解Ruby当中的算数运算

    本文将深入解析Ruby中的各种算数运算符,以及它们在实际编程中的应用。 首先,我们来看Ruby的算数运算符。Ruby提供了常见的加法(+)、减法(-)、乘法(*)、除法(/)和取余(%)运算。比如,如果`a = 10`,`b = ...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby入门教程中文PDF 附实例

    Ruby中的控制结构也相当直观。`if`语句用于条件判断,`for`和`while`循环用于迭代。例如,下面的代码会打印1到5的数字: ```ruby for i in 1..5 puts i end ``` Ruby还是一个面向对象的语言,每个值都是一个对象,...

Global site tag (gtag.js) - Google Analytics