0 0

比较郁闷的Ruby浮点数的精度问题5

@e = 0.477+(0.432-0.477)*(5-4.7)/(5.7-4.7)
#=>0.4635
@e.round(3)
#=>0.463
0.4635.round(3)
#=>0.464
浮点数的精度问题?
如何解决?
2010年3月11日 13:40

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

0 0

@e.to_s.to_f.round(3)
但为什么还没找到,再去深究下

2010年3月11日 14:25

相关推荐

    Ruby-Money一个Ruby库来处理货币和货币转换

    4. **货币运算**:支持基本的数学运算,如加减乘除,同时也考虑了货币运算的精度问题,避免因浮点数运算产生的精度损失。 5. **货币比较**:可以比较两个`Money`对象的大小,用于排序或条件判断。 6. **货币存储**...

    rubyinstaller-2.4.1-1-x64 windows

    2. **浮点数精度**: Ruby 2.4.1改进了浮点数的精度,尤其是在进行比较运算时,减少了因浮点数不精确导致的错误。 3. **Symbol to_proc**: 这个版本增强了`Symbol#to_proc`的性能,使得在使用块操作时能更快速地执行...

    ruby技巧

    浮点数的精度有限,但可以处理较大的或较小的数值。 - 二进制、八进制和十六进制:Ruby 允许以 0b、0 和 0x 开头分别表示二进制、八进制和十六进制的数值。 2. 符号(Symbol) - 符号是 Ruby 中的一种特殊数据...

    IEEE_Standard_754_Floating_Point_Numbers.docx

    PostScript则只支持单精度浮点数精度。 IEEE 754标准定义了不同精度的浮点数格式,包括: - 半精度(binary16) - 单精度(binary32)、十进制32 - 双精度(binary64)、十进制64 - 四倍精度(binary128)、十进制...

    ruby基础教程(第四版)第12章 数值类1

    在处理浮点数时,由于浮点运算的精度问题,可能会引入误差。通过将浮点数转换为`Rational`对象进行计算,可以减少这种误差。`Comparable`模块允许类实现比较运算符,如`==`、`等,通过混入`Comparable`,实例之间...

    ruby环境源码

    例如,这个版本可能包含了对块参数的改进、新的 Proc 类实例方法,以及对于浮点数精度控制的更新。同时,Ruby 2.4系列也对垃圾回收机制进行了优化,提高了整体运行效率。 通过获取并编译Ruby源码,开发者可以深入...

    11.5 时间日期the ruby way.rar

    例如,你可以使用`Rational`进行平方或幂运算,而不用担心浮点数计算的舍入误差。 最后,Ruby的`DateTime`和`Date`类提供了处理日期的更多功能,比如计算两个日期之间的差值,或者对日期进行加减操作。`Time`和`...

    ruby语言基础教程.pptx(共17页,携程内部培训版)

    - **BigDecimal类**: 表示具有任意精度的实数,采用十进制而非二进制表示。 - **Rational类**: 用于表示有理数,即两个整数的比值。 5. **算术操作** - 所有的Ruby数值类型都定义了基本的算术操作符 `+`、`-`、`...

    APFP-开源

    标题中的"APFP-开源"指的是一个开源项目,它的全称可能是"任意精度浮点数处理器"(Arbitrary Precision Floating Point,简称APFP),并且它专注于在Ruby编程语言环境中实现高精度的数值计算。这个项目提供了对任意...

    gmp-3.0.tar.gz

    它的全名揭示了其核心功能——提供多精度算术操作,这包括对整数、有理数以及浮点数的无限精度处理。这个强大的工具广泛应用于需要极端精确计算的领域,如加密算法、科学计算和工程应用等。 GMP的特性与优势: 1. ...

    ruby基本数据类型简明介绍

    此外,Ruby还提供了一些扩展的数值类型,如Complex(复数)、BigDecimal(用于高精度浮点运算)和Rational(有理数)。 接着是字符串。Ruby中没有单独的字符类型,所有文本数据都被视为字符串。字符串可以用单引号...

    for-the-graal:用Ruby-Java-JavaScript实现的一种简单但荒谬的语言

    该语言支持数字(双精度浮点数),字符串和布尔符号。 函数是使用fun定义的。 它们采用名称,参数列表和主体表达。 参数是一个名称/类型对。 ( (fun foo ((n number) (b number)) (* n b)))使用let定义let语句。 ...

    gmp-3.1.1.tar.gz

    这个库广泛应用于需要无限精度计算的场景,如整数、有理数以及浮点数的处理,特别适合在加密算法、科学研究以及高精度计算等专业领域中使用。GMP的出现,极大地提升了这类计算的效率和准确性,使得开发者能够处理...

    sp_simple.rar_WEB开发_Unix_Linux_

    - **服务器端语言**: 如Python、Java、Ruby等,它们的浮点数运算也遵循此标准,确保在不同平台上的一致性。 综上所述,"sp_simple.c"可能是一个演示或测试IEEE754单精度浮点数运算的C语言程序,它可以在Unix和Linux...

    gmp-6.1.2.tar.xz

    5. **扩展性**:除了基本的大整数操作,GMP还支持复数运算和浮点数运算,可以处理超过标准IEEE浮点格式的精度。此外,GMP还支持向量和矩阵运算,适用于更复杂的数学问题。 6. **文档支持**:GMP附带详尽的用户手册...

    2023-MySQL面试必备新30题及答案

    FLOAT 以 4 个字节存储浮点数,精度为 8 位,而 DOUBLE 以 8 个字节存储浮点数,精度为 18 位。 7. CHAR_LENGTH 和 LENGTH 的区别 CHAR_LENGTH 是字符数,而 LENGTH 是字节数。Latin 字符的这两个数据是相同的,...

    Ruby中Time对象的常用函数总结

    - `time` 参数可以是`Time`对象或者表示从Unix纪元以来经过的秒数的一个整数或浮点数。 - 如果使用了浮点秒数,并且精度不足时,可以提供第二个参数`usec`作为微秒补充。 - 如果提供了`usec`,则`time` 和 `usec`...

    redis_token_bucket:使用Ruby和Redis进行令牌桶速率限制

    使用Redis后端的Ruby中的速率限制实现。 特征: 轻巧高效 每个存储桶使用一个Redis密钥 首次使用时会自动创建存储桶 不再使用时,存储桶会自动删除 快速且并发安全 每个操作仅使用一次到Redis的网络往返 计费令牌...

    double to string

    `double`是一种浮点数类型,它能表示较大的数值范围和精度,而`string`则常用于文本处理。在不同的编程语言中,实现`double`到`string`的转换有不同的方法。以下是一些主要编程语言的转换方式及相关的知识点: 1. *...

    MySQL面试题及答案.pdf

    FLOAT 以 8 位精度存储浮点数, chiếm用四个字节。DOUBLE 以 18 位精度存储浮点数,占用八个字节。 7. CHAR_LENGTH 和 LENGTH 的区别 CHAR_LENGTH 是字符数,而 LENGTH 是字节数。对于 Latin 字符,这两个数据是...

Global site tag (gtag.js) - Google Analytics