jquery - toFixed, но не toFixed - PullRequest
       12

jquery - toFixed, но не toFixed

3 голосов
/ 28 января 2011

Использование 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».

Помощь!

Ответы [ 3 ]

2 голосов
/ 28 января 2011

Вы можете использовать Регулярное выражение, чтобы удалить трейлинг .0, если он существует:

Number.prototype.safe_toFixed = function (x) {
    var that = this.toFixed(x);
    return that.replace(/\.0$/, '');
}
1 голос
/ 14 июля 2011

Это то, что я сделал, и это работает каждый раз.

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

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

alert( x );

Я просто сравниваю два типа, чтобы увидеть, совпадают ли они. Если они это сделают, то я знаю, что может быть или не быть дополнительного нуля. В любом случае, я просто округляю вверх (ceil) или down (floor) и получаю целое число без раздражающего десятичного числа и конечного нуля.

0 голосов
/ 07 июля 2011

Вы можете использовать split() и условие if:

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