楼主: jzhyue
5089 6

[其他] [疑问求助]:关于数值的显示、运算与精确度 [推广有奖]

  • 2关注
  • 3粉丝

已卖:7份资源

副教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
398 个
通用积分
477.5302
学术水平
60 点
热心指数
59 点
信用等级
48 点
经验
10958 点
帖子
454
精华
0
在线时间
1118 小时
注册时间
2005-12-31
最后登录
2025-12-9

楼主
jzhyue 发表于 2010-5-7 20:41:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在下想合成一类如身份证号的数值,碰到如下问题:如下图,gen no=x1*10000+x2+x1(A图),B图是excel计算出的相同公式计算出的p_no(我想达到的目的),我想这是计算精确度导致的,不知有什么解决办法?
我在DATA  editor 中输入 123456789.089,显示的结果是123456792.0000,也没有办法理解的。

另:我输入身份证号:413902197604037139,显示的却是413902184384561150,不知何故。
因此,请问老师们,身份证号这类数据用什么类型的来表示比较合理?数值型还是字符?先谢谢了。图显示不出来,上传到附件中
计算对比.PNG
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:精确度 editor EXCEL 身份证号 exce 身份证号 excel

沙发
sungmoo 发表于 2010-5-7 21:40:52
jzhyue 发表于 2010-5-7 20:41 身份证号这类数据用什么类型的来表示比较合理?数值型还是字符?
第二代身份证号末尾可能有x,这样还是设成字符型吧。

藤椅
voodoo 发表于 2010-5-7 22:01:10
只能存成字符型。
help double,你将看到“If you are storing identification numbers, the rounding could matter.  If the identification numbers are integers and take 9 digits or less, store them as longs; otherwise, store them as doubles.  doubles have 16 digits of accuracy.”
巫毒上传,必属佳品!
坛友下载,三思后行!

板凳
jzhyue 发表于 2010-5-7 22:22:28
原来也是采用字符的,后来感觉不便才决定改变数据结构的,我的数据类似身份证号码,结构为No=年月+四位代码+追加码(由于追加码不确定是两位还是一位,选用小数表示,即.xx或.x表示)如200912 5678 .6和2010036578.19
但这类数值在stata中却不能如实显示的,还请版主释疑。谢谢!

报纸
jzhyue 发表于 2010-5-7 22:37:20
voodoo 发表于 2010-5-7 22:01
只能存成字符型。
help double,你将看到“If you are storing identification numbers, the rounding could matter.  If the identification numbers are integers and take 9 digits or less, store them as longs; otherwise, store them as doubles.  doubles have 16 digits of accuracy.”
由此看来如果用数字表示id,只能用少于9位的integer,更大的是无法用数字表示啦。
通过阅读  help double 。感觉标识码最好还是不要用数值表示的好。用字符表达是个好选择。
谢谢voodoo!

地板
sungmoo 发表于 2010-5-8 07:34:41
jzhyue 发表于 2010-5-7 22:37 由此看来如果用数字表示id,只能用少于9位的integer,更大的是无法用数字表示啦。
通过阅读  help double 。感觉标识码最好还是不要用数值表示的好。用字符表达是个好选择。
个人以为,这里的关键还是号码末尾可能存在"x"。

如果ID号都是纯数字,完全可以把ID分成两个数值型变量,以两个变量来标识一个个体。

(当然,也可以用一个数值型变量与一个字符型变量来标识一个个体)

7
jzhyue 发表于 2010-5-8 20:14:22
sungmoo 发表于 2010-5-8 07:34
jzhyue 发表于 2010-5-7 22:37 由此看来如果用数字表示id,只能用少于9位的integer,更大的是无法用数字表示啦。
通过阅读  help double 。感觉标识码最好还是不要用数值表示的好。用字符表达是个好选择。
如果ID号都是纯数字,完全可以把ID分成两个数值型变量,以两个变量来标识一个个体。

(当然,也可以用一个数值型变量与一个字符型变量来标识一个个体)
分成两个变量来标识一个个体!也是个好办法。谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-24 17:31