在javascript中将数组转换为字符串,同时控制浮点数的精度

时间:2018-04-27 15:23:35

标签: javascript formatting tostring number-formatting

我有一个javascript数组三元组,格式为

[[123.55555,4.44444444,0.123455666],[12344.44444,7.77777777,8.8888101010],...,[1.000102340240,123.02020400,1.121212121212]]

这很好地转换为带有'toString()'方法的字符串。 (编辑:实际上,'toString()'会丢失数组的二维特性,但它不会打扰我,因为每行有3个数字,所以结构仍然隐含在字符串中。)

但是,如果我想截断/舍入(我真的不关心哪个)小数点后2位或3位呢?似乎'toFixed()'对数组不起作用......

Nb:我知道我可以遍历数组并手动截断每个数字并将结果字符串拼凑在一起,但我希望有更优雅的方式...

3 个答案:

答案 0 :(得分:2)

评论;你可以使用map:



console.log(
  [[123.55555,4.44444444,0.123455666],[12344.44444,7.77777777,8.8888101010],[1.000102340240,123.02020400,1.121212121212]]
  .map(numbers=>numbers.map(number=>number.toFixed(3)))
  .toString()
)




答案 1 :(得分:1)



var array=[[123.55555,4.44444444,0.123455666],[12344.44444,7.77777777,8.8888101010]];
array=array.map(function(item){
  return item.map(function(num){
    return parseFloat(num.toFixed(2));
  });
});
console.log(array.toString());




答案 2 :(得分:0)

你可以这样做:



const array = [[123.55555, 4.44444444, 0.123455666], [12344.44444, 7.77777777, 8.8888101010]];
const result = [].concat.apply([], array).map(n => n.toFixed(2)).toString();

console.log(result);