显示附加数字而不是科学记数法
Posted
技术标签:
【中文标题】显示附加数字而不是科学记数法【英文标题】:Displaying additional digits rather than scientific notation 【发布时间】:2013-06-01 18:25:09 【问题描述】:当使用list
命令时,是否可以显示整数的附加数字——最好是完整的整数——而不是用科学计数法显示?
例如,现在,我有一个显示为 1.90e+10 的整数,而我认为完整的值是 19001000001。理想情况下,我希望得到完整的值,或者至少在提供了两个(即 9 和 0)。
我正在使用 Stata SE 11.1。
【问题讨论】:
【参考方案1】:只需在使用list
之前使用format
命令设置显示格式。
. set obs 1
obs was 0, now 1
. gen double y = 987654321
. l y
+-----------+
| y |
|-----------|
1. | 9.877e+08 |
+-----------+
. format y %16.0f
. l y
+-----------+
| y |
|-----------|
1. | 987654321 |
+-----------+
如果list
不会播放,其display
选项将强制使用显示格式。在本示例中不需要这样做。我在这里选择的format
是任意的。 Stata 不会插入不需要的空格,因此只需选择一个大于整数长度的数字即可。
(稍后)专注于您的示例:您给出了一个应该是 19001000001 的整数示例。假设这对您来说是一个真实(或现实)的示例,请注意 float
类型没有使用足够的位来保存准确地说,long
不能保存那么大的整数,而将其保存为数字变量的唯一可能性是double
。
. set obs 1
obs was 0, now 1
. gen y1 = 19001000001
. gen double y2 = 19001000001
. gen long y3 = 19001000001
. l
+---------------------------+
| y1 y2 y3 |
|---------------------------|
1. | 1.90e+10 1.900e+10 . |
+---------------------------+
. format y* %16.0f
. l
+--------------------------------+
| y1 y2 y3 |
|--------------------------------|
1 . | 19000999936 19001000001 . |
+--------------------------------+
另一方面,您可以信任什么样的计数或测量来达到这种精度?可能这是某种恰好基于数字字符的标识符,在这种情况下,将其保存为 string
变量将使一些事情变得更容易,具体取决于您想用它做什么。
【讨论】:
以上是关于显示附加数字而不是科学记数法的主要内容,如果未能解决你的问题,请参考以下文章
将数字格式化为科学计数法,但使用 3e-5 而不是 3e-05