如何在javascript中对字符串中的数字进行舍入?

时间:2016-06-09 11:24:54

标签: javascript string replace

我有一个格式如下的字符串:

a 582 320 b 15.33 320 15.33 c 148.66 320 148.66

我需要所有数字都是整数,如下所示:

a 582 320 b 15 320 15 c 149 320 149

我正在考虑在空格上分割字符串,parseFloat()然后Math.Round()并在每个元素上添加try,然后再次重新构建字符串。

有更好/更简单的方法吗?

4 个答案:

答案 0 :(得分:0)

甚至可能是一个(长)单行: - )

yourstring = yourstring.split(" ").map(function(el) {var p=parseFloat(el);return isNaN(p)?el:Math.round(p)}).join(" ")

答案 1 :(得分:0)

您可以使用正则表达式和回调进行舍入。

.navbar-fixed-top {
  position: fixed;
  width: calc(100vw - 260px);
  left:260px;
  z-index: 1030;
}

<div class="wrapper">
   <div class="sidebar">
     ..menuitems..
   </div>
   <div class="main-panel">
       <nav class="navbar navbar-default navbar-fixed-top">

       </nav>
       <div class="content">
          <div class="container-fluid">
              <div class="row">
               ...content...
              </div>
          </div>
      </div>
   </div>
</div>

答案 2 :(得分:0)

function roundNumbersInString(str) {
    return str.replace(/\w\S*/g, function (txt) {
        return (/^[0-9.]+$/.test(txt)) ? Math.round(txt) : txt;
    });
}
console.log(roundNumbersInString("a 582 320 b 15.33 320 15.33 c 148.66 320 148.66"));

//“a 582 320 b 15 320 15 c 149 320 149”

答案 3 :(得分:0)

我就是这样做的。

var str = "a 582 320 b 15.33 320 15.33 c 148.66 320 148.66",
 rndStr = str.split(" ").map(e => Math.round(+e) || e).join(" ");
console.log(rndStr);