来自小浮点数的时间戳

时间:2017-06-19 18:35:34

标签: javascript angularjs highcharts

我有一个这样的数组:

var myArray = [[2.55555e-12, 1],[2.55556e-12, 2],[1.1111e-11, 3],[2.77778e-11, 4]]

我需要转换值:2.55555e-12,2.55556e-12,1.1111e-11,277778e-11到时间戳,所以我可以在highcharts中使用它。

1 个答案:

答案 0 :(得分:2)

使用string.split('e-')(假设所有这些数字都需要取幂)。然后,使用数组的内容将您的数字乘以一个新数组。例如,

对于2.55555e-12 = 2.55555 * 10 ^ -12:

    var myArray = [[2.55555e-12, 1],[2.55556e-12, 2],[1.1111e-11, 3],[2.77778e-11, 4]]
    var newArray = [];
    for (var i in myArray) {
        var tempArray = myArray[i][0].toString().split('e');
        if (tempArray.length > 1) {
            newArray[i] = tempArray[0] * Math.pow(10, Number.parseFloat(tempArray[1]));
        } else {
            newArray[i] = Number.parseFloat(tempArray[0]);
        }
    }
    console.log(newArray);
      

对于2.55555e-12 = 2.55555 * 10 ^ 12:

var myArray = [[2.55555e-12, 1],[2.55556e-12, 2],[1.1111e-11, 3],[2.77778e-11, 4]];
var newArray = [];
for (var i in myArray) {
  var tempArray = myArray[i][0].toString().split('e-');
    if (tempArray.length > 1) {
        newArray[i] = tempArray[0] * Math.pow(10, Number.parseFloat(tempArray[1]));
    } else {
        newArray[i] = Number.parseFloat(tempArray[0]);
    };
};
console.log(newArray);

编辑

  • 将parseInt更改为parseFloat
  • 更改了拆分表达式并为常规浮动添加了数据验证
  • 更正了最终数字计算,并添加了另一个问题歧义