【问题标题】:Mathematica import large integers from .csv?Mathematica 从 .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 可以处理任意长度的整数,那么我怎样才能让它将这些数字作为(大)整数导入,而不是将它们转换成这种有损的科学记数法呢?

【问题讨论】:

    标签: csv import wolfram-mathematica biginteger scientific-notation


    【解决方案1】:

    你用的是什么版本?在 Mma 8.0.1 上没问题。

    如果您在 Excel 中创建 CSV 文件,请将时间戳的格式设置为小数点为零的数字(通过更多数字格式...)

    【讨论】:

    • 谢谢!我确实是从 Excel 导出的,当我问我从 .xls 文件中复制的问题时,我是从 CSV 导入的,正如您所推测的那样,Excel 已经把我的大整数搞砸了。桌面上的窗口太多。再次感谢您,您为我节省了无数时间。
    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多