JavaScript - 将科学记数法转换为十进制

时间:2017-04-27 11:45:39

标签: javascript jquery html csv d3.js

我在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+300rowNum = 1评估为Infinity

对于第10行的每一行都是如此。

第10行之后的所有内容都评估为Number(data[rowNum]["column2"])

Infinity评估为rowNum = 10的{​​{1}}。

为什么会发生这种情况,我该如何预防呢?

0 个答案:

没有答案