网站首页 > 文章精选 正文
近日,有朋友发现自己用excel登记身份证信息时,身份证号码居然被Excel偷偷篡改了后3位(修改为0了)。导致他录入了半天的身份证有一大半都是错误的数据,只有带字母的没事。就算他采用复制粘贴的方式依然会错误,不太懂计算机的人彻底蒙圈了,但懂计算机的人很容易就发现问题了。
1、问题原因
根据微软官方文档说明,微软在设计excel时,遵循了有关如何存储和计算浮点数的 IEEE 754 规范。 因此,Excel 在数字中就只存储了 15 位有效位数,并将第十五位后的数字更改为零。这就很好地解释了为什么全数字的身份证号码会被篡改后3位的问题了。
至于带字母的身份证号码为什么没事,也很好解释。因为在一长串数字中加入了字母后,excel就不再认为它是数字,转而认为它是一个Unicode字符串。这个Unicode字符串在excel顶底层存储时unsigned short数据类型,最大可以包含32767个字符的Unicode字符串。所以,excel单元格最大可以输入32767个字符,但在工作表上最多只能显示1024个字符。
2、解决办法
要解决这个问题,有两种方法:
①、输入长数字之前,在单元格中增加输入一个单引号“ ’ ”。这样excel就自动将长串数字转存为Unicode字符串了。
②、输入长数字之前,先将单元格的数据格式主动设置为“文本”格式。这样,你输入的长串数字也就被excel当作文本信息来存储了。
除了上面的解决方法外,我们还要养成一个好习惯。那就是做完表格,一定要抽样检查一下。以免出现问题,造成不可挽回的后果。
3、副作用
以上两种方法虽然都能成功解决问题,但是也会带来副作用。那就是都会把这个单元格的数据当作字符串来存储,后续如果再用这个信息当作源数据来进行数学计算的话,excel容易出错,有时候会在结果单元格直接显示公式给你。因为字符串不是数字,excel自动识别过元数据和计算公式时容易识别错误。
excel为了避免未知的错误,会在该单元格上的左上方出现绿色小三角标记作提醒。如果将鼠标移动过去,你会看到黄色叹号提醒。会提醒你“该单元的内容为文本格式或者前面有单引号” ’ “。我们看到这样单元格,就尽量不要用它来做计算了。
总结
微软的excel虽然做得很好,但这些注意事项也还真的是要非常注意,不然因为软件不正确的使用导致你交付的文件有问题就得不偿失了。
- 上一篇: 信号量函数 (semget、semctl、semop)及示例
- 下一篇: 大话C语言:联合体
猜你喜欢
- 2025-01-05 PHP源码系列之扩展的原理与开发
- 2025-01-05 「linux」多个套接字可以绑定同一个端口吗
- 2025-01-05 基于netmap的用户态协议栈(一)
- 2025-01-05 Linux文件:超级块inode dentry file关系
- 2025-01-05 实战Netty!基于私有协议,怎样快速开发网络通信服务
- 2025-01-05 char, unsigned char,之间的相互转换
- 2025-01-05 PHP 扩展与 ZEND 引擎的整合
- 2025-01-05 C语言:位域和字节序
- 2025-01-05 Nor Flash的两种规范
- 2025-01-05 「技术干货」Ip头udp数据包ARP协议(代码实现netmap)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)