【问题标题】:How to round a number up and add numeric punctuation如何四舍五入并添加数字标点符号
【发布时间】:2015-06-11 13:50:09
【问题描述】:

我有以下笔:http://codepen.io/anon/pen/LVLzvR

我不知道如何将数字四舍五入,以免破坏标点符号。我需要将数字向上取整,因为我不想看到像 33,333.,333 这样的值

 //ADDS PUNCTUATION EVERY THREE CHARACTERS
  $('input.numericpunctuation').keyup(function(event){

      var oNum= $(this).val(); // USE THIS NUMBER FOR CALCULATION

      var num = oNum.replace(/,/gi, "").split("").reverse().join("");

      var num2 = RemoveRougeChar(num.replace(/(.{3})/g,"$1,").split("").reverse().join(""));

      console.log(num2);
      console.log(oNum);

      // the following line has been simplified. Revision history contains original.
      $(this).val(num2);
  });

function RemoveRougeChar(convertString){


    if(convertString.substring(0,1) == ","){

        return convertString.substring(1, convertString.length)            

    }
    return convertString;

}

输入事件示例: 如果我输入 5555,预计会看到(并且确实看到)5,555。但是,如果我添加 5555.55,我会得到 5,555,.55。理想情况下,我喜欢将数字向上舍入,去掉小数点。

【问题讨论】:

  • 胭脂!= 流氓。一个表示红色,另一个表示流浪。
  • 我不明白这个问题。您能否为这些输入添加示例输入以及当前和预期输出?另外,请注意,如果文本在您编辑时不断变化,那么编辑该表单中的任何内容都会非常令人沮丧
  • 这对功能没有太大影响,但感谢拼写检查。
  • 如果我输入 5555,预计会看到 5,555。但是,如果我添加 5555.55,我会得到 5,555,.55。理想情况下,如果想将数字向上舍入,去掉小数点。
  • 是否使用像numerals 这样的库?

标签: javascript jquery numbers roundup


【解决方案1】:

问题不仅仅在于小数,输入非数字也会导致格式错误,例如,单击King Kong 将导致Kin,g K,ong。因此,您可能想要过滤掉非数字,这可以通过将var oNum= $(this).val(); 行更改为:

var oNum= $(this).val().match(/\d/g).join('');

match 函数中的值是一个 RegEx 对象 - 如果您之前从未使用过它,那么恭喜!

【讨论】:

  • 感谢您的回答,非常感谢您的宝贵时间。它几乎在那里。如果我输入 10000.33,我会得到 10,00033。我想完全丢失十进制数字,这样他们就不会扭曲数字。有什么想法吗?
  • 你确定吗?我在您的 Pen 中尝试了问题中发布的代码,并根据我的建议进行了编辑,并且效果很好,您可以重新检查一下吗?
  • 好的。是的,我明白你的意思。我猛击了 5555.333,看到了 5,555,333。但我一直在小数点后打字。是的,你是对的,这很有效。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-11-12
  • 2021-03-23
  • 2023-01-12
  • 2014-06-11
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多