不希望大数字在 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。您要么需要使用字符值来处理它们,要么安装能够实现任意精度的包。 Rmpfr
和 gmp
是我想到的两个。
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。您要么需要使用字符值来处理它们,要么安装能够实现任意精度的包。 Rmpfr
和 gmp
是我想到的两个。