jquery - toFixed 但不是 toFixed

发布于 2024-10-14 17:05:06 字数 190 浏览 2 评论 0原文

使用 toFixed 如下所示:

var a=0.5, b=1, c=1.5;
console.log(a.toFixed(), b.toFixed(), c.toFixed());
// 0.5 1.0 1.5

但是,当它是整数时,我只希望它返回“1”。

帮助!

Using toFixed like follows gives:

var a=0.5, b=1, c=1.5;
console.log(a.toFixed(), b.toFixed(), c.toFixed());
// 0.5 1.0 1.5

However, when it's a whole number, I only want it to return "1".

Help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陈独秀 2024-10-21 17:05:06

您可以使用正则表达式删除尾随 .0(如果存在):

Number.prototype.safe_toFixed = function (x) {
    var that = this.toFixed(x);
    return that.replace(/\.0$/, '');
}

You could use a Regular Expression to remove a trailing .0, if it exists:

Number.prototype.safe_toFixed = function (x) {
    var that = this.toFixed(x);
    return that.replace(/\.0$/, '');
}
司马昭之心 2024-10-21 17:05:06

这就是我所做的,并且每次都有效。

var x= Number(54.03).toFixed(1);

  if(Math.floor(x) == x) {
     x = Math.floor(x);
  }

alert( x );

我只是比较这两种类型,看看它们是否匹配。如果他们这样做,那么我知道可能有也可能没有额外的零。无论哪种方式,我只需向上舍入(ceil)或向下舍入(floor)并得到整个数字,没有烦人的小数和尾随零。

This is what I did and it works every time.

var x= Number(54.03).toFixed(1);

  if(Math.floor(x) == x) {
     x = Math.floor(x);
  }

alert( x );

I am just comparing the two types to see if they match. If they do, then I know there may or may not be an extra zero. Either way, I simply round up (ceil) or down (floor) and get the whole number with no annoying decimal and trailing zero.

2024-10-21 17:05:06

您可以使用 split()if 条件:

    var digit = 1.2
    var ret = digit.toFixed(1);
    var intValue = ret.split('.');
    if(intValue[1] == 0){
      digit = intValue[0];
    }

You could use split() and a if condition:

    var digit = 1.2
    var ret = digit.toFixed(1);
    var intValue = ret.split('.');
    if(intValue[1] == 0){
      digit = intValue[0];
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文