问题
vivado的逻辑分析仪ILA,可以方便的把数据导出成CSV(Comma-Separated Values)文件,实际是逗号作为分隔符的数据文件。
导出数据文件用文本编辑器打开,第74行有如下数据:
但是使用excel打开这个csv文件,则这个数据自动显示为科学计数法,但是值的最后一位已经从8变成0:
误差
这个值代表的双精度浮点数,误差-0.00000000000005
解决方法
网络上有几种解决方法:
方法1:使用文本导入向导(亲测有效)
不要直接双击打开CSV文件。而是首先打开Excel,然后使用“数据”菜单上的“从文本获取数据”,导入该CSV文件:
文件类型选“分隔符号”:
分隔符选“逗号”,文本识别符号可以任意或根据实际选择:
最关键的这步!默认所有列都是按照常规方式导入,问题就出在这里:
必须选中第4列,改为文本:
如果是WPS,可以在文件/选项/新特性,对话框,去掉“打开CSV文件是不弹对话框”前面的勾:
以后双击文件打开时,即可先指定每一列的格式,这样打开的CSV文件不会因为自动转换为科学计数法而损失精度:
方法2:在CSV文件中预格式化
在打开CSV文件之前,您可以通过在订单号前加上一个等号和双引号来预格式化这些数字。例如,将订单号 1234567890123456789 修改为 =“1234567890123456789”。这样做可以让Excel把这些值当作文本处理。
方法3:使用文本编辑器预处理
使用文本编辑器(如记事本)打开CSV文件。
手动添加一个单引号 ’ 在每个长数字前。例如,将 1234567890123456789 修改为 '1234567890123456789。
保存CSV文件,然后用Excel打开。