【问题标题】:converting array to string in javascript while controlling precision of floats在控制浮点数精度的同时在javascript中将数组转换为字符串
【发布时间】:2018-04-27 15:23:35
【问题描述】:

我有一个 javascript array-of-number-triples,格式为

[[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:我知道我可以遍历数组并手动截断每个数字并将结果字符串拼凑在一起,但我希望有一种更优雅的方式......

【问题讨论】:

标签: javascript formatting tostring number-formatting


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你可以这样做:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 2020-02-03
        • 1970-01-01
        • 2019-04-15
        相关资源
        最近更新 更多