Mathematica 从 .csv 导入大整数?
Posted
技术标签:
【中文标题】Mathematica 从 .csv 导入大整数?【英文标题】:Mathematica import large integers from .csv? 【发布时间】:2012-02-21 18:49:07 【问题描述】:我正在将一些数据从 CSV 导入 Mathematica。 CSV 的前几行如下所示:
"a_use","tstart","tend"
"bind items on truck to prevent from flying off",1328661514469,1328661531032
"hang laundry on",1328661531035,1328661541700
"tie firewood with",1328661541702,1328661554940
"anchor tent",1328661554942,1328661559797
Mathematica 几乎完美地处理了这个问题:
data = Import["mystuff.csv"]
问题是那些大时间戳被转换成科学记数法,失去了精度:
In[283]:= data[[2,2]]
Out[283]= 1.32866*10^12
如您所见,即使 1328661531035 与 1328661541700 不同,导入的数据也不再精确到无法区分两者,因为两者都以 1.32866*10^12 的形式导入。我知道 Mathematica 可以处理任意长度的整数,那么我怎样才能让它将这些数字作为(大)整数导入,而不是将它们转换成这种有损的科学记数法呢?
【问题讨论】:
【参考方案1】:你用的是什么版本?在 Mma 8.0.1 上没问题。
如果您在 Excel 中创建 CSV 文件,请将时间戳的格式设置为小数点为零的数字(通过更多数字格式...)
【讨论】:
谢谢!我确实是从 Excel 导出的,当我问我从 .xls 文件中复制的问题时,我是从 CSV 导入的,正如您所推测的那样,Excel 已经把我的大整数搞砸了。桌面上的窗口太多。再次感谢您,您为我节省了无数时间。以上是关于Mathematica 从 .csv 导入大整数?的主要内容,如果未能解决你的问题,请参考以下文章