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

converting array to string in javascript while controlling precision of floats

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

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

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

但是,如果我想 truncate/round(我真的不在乎哪个)小数点后 2 位或 3 位的数字怎么办?似乎 'toFixed()' 不适用于数组...

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

如评论;你可以使用地图:

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()
)

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());

你可以这样做:

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);