【发布时间】:2011-01-18 06:14:09
【问题描述】:
R 中有一个选项可以控制数字显示。例如:
options(digits=10)
应该以 10 位数字给出计算结果,直到 R 会话结束。在R的帮助文件中,digits参数的定义如下:
digits:控制位数 打印数值时打印。 这只是一个建议。有效值 为 1...22,默认为 7
所以,它说这只是一个建议。如果我喜欢始终显示 10 个数字,而不是更多或更少,该怎么办?
我的第二个问题是,如果我想显示超过 22 位数字,即更精确的计算,如 100 位数字,该怎么办?是否可以使用基本 R,或者我需要额外的包/功能吗?
编辑:感谢jmoy的建议,我尝试了sprintf("%.100f",pi),它给了
[1] "3.1415926535897931159979634685441851615905761718750000000000000000000000000000000000000000000000000000"
有 48 位小数。这是R可以处理的最大限制吗?
【问题讨论】:
-
只有 pi 的前 15 位数字是准确的。对比真值joyofpi.com/pi.html
-
你是对的。为什么它在 R 中有所不同?
-
请参阅 R cran.r-project.org/doc/FAQ/… 上的常见问题解答
-
Mehper:我认为您误解了 R 中数字的计算表示。您可能需要阅读 en.wikipedia.org/wiki/Floating_point。
-
作为比较,Python 做的完全一样:试试
python -c "import math; print(format(math.pi, '.100f'))"。结果是pi,有 48 个“真实”小数,其余 52 位用零填充。
标签: r precision digits r-faq output-formatting