我有一个数字,例如1.128347132904321674821,我想在输出到屏幕(或写入到文件)时仅显示两个小数点后的位置。要怎么做呢?

x <- 1.128347132904321674821

编辑:

用途:

options(digits=2)

被认为是一个可能的答案。是否有一种方法可以在脚本中指定这一点,以便一次性使用?当我将它添加到我的脚本时,它似乎没有做任何不同的事情,我对大量重新输入来格式化每个数字不感兴趣(我正在自动化一个非常大的报告)。

--

答案:整数(x,数字=2)


当前回答

检查prettyNum、format函数

使用sprintf(x, fmt='%#.4g')来测试0(例如123.1240)

其他回答

检查prettyNum、format函数

使用sprintf(x, fmt='%#.4g')来测试0(例如123.1240)

就像这样:

options(digits=2)

数字选项的定义:

digits: controls the number of digits to print when printing numeric values.

函数formatC()可用于将数字格式化到小数点后两位。即使结果值包含后面的零,此函数也会给出两位小数。

请注意,R中的数字对象以双重精度存储,这给了你(大约)16个十进制数字的精度-其余的将是噪声。我承认上面显示的数字可能只是一个例子,但它有22位数长。

你可以试试我的打包格式。

> # devtools::install_github("renkun-ken/formattable")
> library(formattable)
> x <- formattable(1.128347132904321674821, digits = 2, format = "f")
> x
[1] 1.13

好处是,x仍然是一个数字向量,你可以用同样的格式做更多的计算。

> x + 1
[1] 2.13

更好的是,数字不会丢失,你可以用更多的数字重新格式化:)

> formattable(x, digits = 6, format = "f")
[1] 1.128347