【发布时间】:2018-05-11 20:37:14
【问题描述】:
我正在尝试打印到控制台,甚至检查我的数据框对象中的数字,这些数字包含带有 8 位小数的大十进制数字,例如:“1054792997932.50564756”(数字的类别是 numeric)
我尝试使用 print() 和 cat() 和 View() 检查单个数字,但我得到的唯一结果是整数“1054792997932”,除非我使用 sprintf("%.8f", number),否则无法看到小数位,但我得到的输出是错误的数字:
> sprintf("%.8f", 1054792997932.50564756)
[1] "1054792997932.50561523"
所以从外观上看,sprintf 不是检查或格式化大十进制数的好方法。
我在验证和处理这些数字时遇到了问题
系统设置为:
R version: 3.4.0
我使用非常标准的包:
R stats and R Utils
【问题讨论】:
-
我建议你研究这个答案:stackoverflow.com/a/9508558/1412059
-
@LAP 您的示例适用于显示,谢谢,这真的很有用,有没有办法使用大数字的圆形以及我们尝试了以下但它不起作用 ">round(105479299792.675994873, 4)" => "[1] 105479299792.675994873"
-
有趣。当四舍五入到小数点后 1 或 0 时,您的示例适用于我,但对于更多小数点,它始终显示
105479299792.67599。我不确定为什么这不起作用。由于浮点运算,它可能是一个伪影(请参阅@Roland 提供的链接)。 -
感谢大家的帮助,@LAP f 您可以提出您的回复作为答案,我会接受,再次感谢
标签: r