我在HTML textarea元素中有逗号分隔数据,其内容我存储在一个变量中。让该变量称为“输出”。
rowNum,column1,column2
1,1.450512e+005,1.982704e+00300
2,1.401080e+005,2.230725e+00300
3,1.351758e+005,2.643786e+00300
4,1.302602e+005,3.221424e+00300
5,1.253666e+005,3.962995e+00300
6,1.205006e+005,4.867671e+00300
7,1.156674e+005,5.934442e+00300
8,1.108727e+005,7.162115e+00300
9,1.061216e+005,8.549320e+00300
10,1.014195e+005,1.009451e+00400
11,9.677171e+004,1.179595e+00400
12,9.218335e+004,1.365175e+00400
13,8.765956e+004,1.565984e+00400
14,8.320540e+004,1.781796e+00400
15,7.882584e+004,2.012372e+00400
16,7.452578e+004,2.257453e+00400
然后我这样做:
data = d3.csvParse(output);
基于this answer,我使用Number()函数将这些科学记数法转换为十进制数。虽然它适用于第一列中的数字,但第二列无法正确转换。
例如:Number(data[rowNum]["column1"])
正确地145051.2
rowNum = 1
加注Number(data[rowNum]["column2"])
。
但是,1.982704e+300
对rowNum = 1
评估为Infinity
。
对于第10行的每一行都是如此。
第10行之后的所有内容都评估为Number(data[rowNum]["column2"])
。
Infinity
评估为rowNum = 10
的{{1}}。
为什么会发生这种情况,我该如何预防呢?