`
cvu
  • 浏览: 108327 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

奇怪的现象:BigDecimal.new('3.0').to_f == 3.0 # => false

    博客分类:
  • ruby
阅读更多
开发中遇到奇怪的现象:
> ruby script/console -s
>> BigDecimal.new('3.0').to_f == 3.0
=> false
>> BigDecimal.new('3.0').to_i == 3
=> true
>> BigDecimal.new('3.0').to_s == '3.0'
=> true


虽然可以通过to_s绕过这个问题,但是这个现象百思不得其解。
分享到:
评论
1 楼 zhualike 2009-11-16  
浮点数的精度有问题,一般都不用等号做比较的

相关推荐

    BigDecimal.js.zip

    <script src="path/to/BigDecimal-all-last.min.js"></script> ``` 一旦引入库,就可以创建BigDecimal对象并执行相应的操作。例如,创建一个大数: ```javascript var bigNum1 = new BigDecimal("1234567890....

    js_bigdecimal_1_0_1.zip

    "js_bigdecimal_1_0_1.zip"是一个包含了JavaScript环境下实现BigDecimal功能的库,版本号为1.0.1,据描述,这个库经过了实际测试,证明是有效的。 BigDecimal是一种可以表示任意精度的十进制浮点数的类,主要用于...

    rubygem-bigdecimal-1.2.0-39.el7_9.x86_64.rpm

    Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh rubygem-bigdecimal-1.2.0-39.el7_9.x86_64.rpm

    Bigdecimal.js

    var x = new BigDecimal("123.456"); var y = new BigDecimal("789.012"); ``` 之后,我们就可以使用这个库提供的方法进行计算,如: ```javascript var result = x.add(y); // 结果为 "912.468" ``` `Bigdecimal...

    bigDecimal.js:支持大量操作JavaScript库

    <script src="path/to/your/bigDecimal.js"></script> ``` 这样,BigDecimal的功能就加载到你的网页中,你可以直接使用 `BigDecimal` 对象进行计算。 2. **使用npm**:如果你的项目是基于Node.js环境,可以使用...

    常见的findbugs解决方案

    例如,错误的写法:BigDecimal bd = new BigDecimal(0.1); 正确的写法:BigDecimal bd = new BigDecimal("0.1"); 2. GCGC_UNRELATED_TYPES:泛型参数与方法参数没有相互关系,应该使用相关的泛型参数。 例如,错误...

    Can't find a codec for class java.math.BigDecimal.txt

    解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal

    bigdecimal.js

    在前端实际开发中,进行前端计算会出现丢失精度的问题,项目中需要对金钱进行运算,为了使计算结果更准确,故使用bigDecimal工具来实现

    rubygem-bigdecimal-1.2.0-33.el7_4.x86_64.rpm

    离线安装包,亲测可用

    javascript版BigDecimal类库

    为了解决这个问题,开发者们引入了`BigDecimal`类库的概念,它在Java中被广泛使用,用于进行高精度的算术运算。本文将详细介绍JavaScript版的`BigDecimal`类库,以及如何在JavaScript环境中实现精确计算。 ...

    javascript BigDecimal 大数运算类 单文件浓缩版

    new BigDecimal("1234.5678").isGreaterThanOrEqualTo(new BigDecimal("1234.5678")), "1234.5678 is less than or equal to itself as well as greater than or equal to itself"); 别整个复制粘贴啊,那样是运行...

    bigdecimal转integer.docx

    在 Java 编程中,`BigDecimal` 和 `Integer` 是两个不同类型的数值表示。`BigDecimal` 用于处理精确的浮点数运算,适合财务或金融计算,因为它可以避免浮点数计算中的精度问题。而 `Integer` 是 Java 中的整数类型,...

    BigDecimal的计算

    ### BigDecimal的计算 #### 概述 在Java中,`BigDecimal` 类提供了对超过16位有效数字的十进制数进行精确算术运算的能力。它适用于金融计算、科学计算等场景,在这些场景中,使用浮点数(如 `float` 和 `double`)...

    关于BigDecimal的构造函数与大小比较

    BigDecimal b1=new BigDecimal("1.0"); BigDecimal b2=new BigDecimal("1.00"); boolean t=b1.equals(b2); 怎么样,你认为t是true还是false?它还真是false。BigDecimal的大小比较,1.0与1.00是不相等的,得采用...

    javascrpt BigDecimal 大数运算类 完整版(包括例子)

    其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...

    akchabar-ruby:用于 akchabar.kg JSON API 的 Ruby 客户端

    => {"date"=>"28.03.2015", "rates"=>{"usd"=>"63.8956", "euro"=>"69.1446", "ruble"=>"1.1068", "tenge"=>"0.3445", "btc"=>"15580.303104"}, "updated_at"=>1427626744} > Akchabar.btc_rate => #<BigDecimal> ...

    bigdecimal

    ### Java中的BigDecimal类详解 在Java编程语言中,当我们处理涉及货币、财务或者任何需要高精度计算的场景时,`BigDecimal` 类是非常重要的工具之一。本文将深入探讨 `BigDecimal` 类的基本概念、特点以及如何使用...

    JBuider第六章:Java.lang包.rar

    还有`BigInteger`和`BigDecimal`类,它们支持任意精度的大整数和浮点数运算。 5. **反射机制**:`Class`类是Java反射机制的核心,可以用来动态地获取类的信息(如类名、方法、字段)并操作它们。这对于编写灵活和可...

    java代码静态检测规则

    对于`BigDecimal`对象也应遵循同样的原则,即避免重复创建`BigDecimal.ZERO`、`BigDecimal.ONE`和`BigDecimal.TEN`。 #### 原因: 1. **性能考虑**:重复创建这些常用值会增加不必要的内存开销。 2. **代码简洁性**...

    js的BigDecimal.js 用于表示金额,修改为vue引用,含原版

    js的BigDecimal.js 用于表示金额,修改为vue引用,含原版 引用: import { money,bigDecimal } from 'xxx/BigDecimal.js' 提供两个方法,money(value) 金额 bigDecimal (value)数字 还有一些其它方法,可以自己开放...

Global site tag (gtag.js) - Google Analytics