r - R中数字的内部表示
问题描述
> trunc(26015)
[1] 26015
> 260.15*100
[1] 26015
> trunc(260.15*100)
[1] 26014
> floor(260.15*100)
[1] 26014
> as.integer(260.15*100)
[1] 26014
对于 R 中的这段代码,数字的内部表示是否存在问题?当我做 260.15*100 时,打印的数字仍然是 26015,但是当我使用 trunc() 或 as.integer() 之类的函数时,它变成了 26014。通常,我包含小数的值来自另一个变量。那么我该如何克服这个问题呢?
解决方案
数字的打印方法与其内部表示不同。260.15 * 100
实际上从来不是 26015,它只是这样打印的。print.numeric
使用舍入。基础numeric
数据是浮点数。您可以通过更改打印选项来查看:
# set print.numeric() to display up to 22 digits, the maximum possible
> options(digits = 22)
> 260.15 * 100
[1] 26014.99999999999636202
> 26015
[1] 26015
代替trunc()
or as.integer()
,是否round()
满足您的需求?
推荐阅读
- java - 在多个项目之间链接 maven 依赖项时出现 ClassNotFoundException
- airflow - 气流调度程序拒绝在恶魔模式下启动
- node.js - 在 mongodb 和节点 js 中堆内存不足
- javascript - Jquery检查未检查的转换不起作用
- java - 为什么 RecyclerView Adapter 是一个泛型类
- java - Vaadin 按钮单击不会立即执行
- python - 我非常坚持如何添加外卖选项,因为定义不起作用
- php - 从 java EE 通过 PHP 发送 HTML 数据而不使用 JSON 对象进行更改
- python - 如何使用 KV 语言在 Kivy 中制作自定义按钮?
- spring - 如何清理用于幂等 Spring 集成模式的元数据存储