§6. Форматирование дробных чисел

Научим JavaScript преобразовывать числа в форматированные строки. Для этого добавим в объект Number метод toFloatStr(), который будет форматировать число так, чтобы оно содержало определенное количество знаков после запятой. Метод умеет также отделять группы по 3 цифры друг от друга пробелами.

Number.prototype.toFloatStr=function(n,triads)
// конвертирует дробное число в форматированную строку
// с количеством знаков после запятой n и с разделением
// триад цифр пробелами (при triads!=0)
// в случае ошибки возвращает false
{
  var s,d=0,k,m;

  if (typeof(n)=='number')
    if (n.isInt())
      if (n>=-6 && n<=6) d=n;

  s=this.roundTo(d).toString().replace('.',',');

  if (d>0)
  {
    k=s.indexOf(',');
    if (k==-1)
      s+=','+'0'.repeat(d);
    else
      s+='0'.repeat(d-(s.length-k-1));
  }

  k=s.indexOf(',');
  if (k==-1) k=s.length;
  m=s.indexOf('-');
  if (m==-1)
    m=0;
  else
    m=1;

  if (triads)
    for (d=k-3;d>m;d=d-3)
    {
      s=s.substr(0,d)+' '+s.substr(d,s.length-d+1);
    }

  return s;
}

В завершение предлагаю испытать работу метода toFloatStr().


 





Запись опубликована в рубрике JavaScript с метками , . Добавьте в закладки постоянную ссылку.

2 комментария: §6. Форматирование дробных чисел

  1. Exciter говорит:

    Ты хороший программер, но кривой вэбмастер.
    Number.prototype.toFloatStr=function(n,triads)
    строка s+=’,'+’0′.repeat(d);
    что такое repeat(d) ?
    И так по всем твоим функциям. Они не пашут если взять их так как ты их положил на сайте.
    Тоже самое и с Number.prototype.toPhrase=function(c)
    Кучу функций надо искать у тебя на сайте и не все они есть.
    Вобщем в итоге – примеры твои не задействовать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>