不希望大数字在 R 中四舍五入

Donot want large numbers to be rounded off in R

options(scipen=999)

625075741017804800

625075741017804806

当我在 R 控制台中键入以上内容时,我得到上面列出的两个数字的相同输出。输出为:625075741017804800

我该如何避免这种情况?

您可以使用包 Rmpfr 实现任意精度

dig <- mpfr("625075741017804806")
print(dig, 18)
# 1 'mpfr' number of precision  60   bits 
# [1] 6.25075741017804806e17

大于 2^53 的数字不会明确存储在 R 数字 classed 向量中。最近有一项更改允许在数字横坐标中存储整数,但是您的数字大于增加精度的容量:

625075741017804806 > 2^53
[1] TRUE

在此之前,整数最多只能存储 Machine$integer.max == 2147483647。大于该值的数字会被强制转换为 'numeric' class。您要么需要使用字符值来处理它们,要么安装能够实现任意精度的包。 Rmpfrgmp 是我想到的两个。