Вставка запятых в числа для обоих объектов и входных текстовых полей - PullRequest
0 голосов
/ 06 января 2012

Положение: У меня есть калькулятор, который я разрабатываю, используя следующие формулы: // --- Математика ---

function national(){
        x = Number($('#budget').val());
        y = Number($('#percentage').val());

        a = x * 2;
        b = [x*(100/100-(1/y))]*2;
        c = (x*(1/y))*4;
        d = (b+c)-a;
        e = (d/a)*100;
        f = (b+c);

        $('#one').text(Math.round(a));
        $('#two').text(Math.round(b));
        $('#three').text(Math.round(c));
        $('#four').text(Math.round(d));
        $('#five').text(Math.round(e));
        $('#six').text(Math.round(f));

        $('#input1').text(Math.round(y));
        $('#input2').text(Math.round(x)); 


    }

Я не могу слишком сильно изменить форматирование, потому что я использую эту структуру, использую var в качестве псевдомассива для подачи плагина гистограммы, который графически отображает мои вычисления.

Я использовал действие Math.round для устранения сумасшедших вычислений, но мне нужно добавить числовое форматирование к выводу.

Я использовал это регулярное выражение для вставки своих запятых

Number.prototype.format = function (f) {
    return this.toString().split( /(?=(?:\d{3})+(?:\.|$))/g ).join( "," );
// ex $('#one').text(a.format());
};

но я не знаю, как включить действие регулярных выражений и математических вычислений ... они продолжают убивать друг друга.

Проблема: Мне нужно отформатировать мои выходные объекты DOM и мои поля ввода текста. Возможно ли это, и мой синтаксис просто не подходит, любые входные данные или возможные решения будут оценены.

Бонус: Я использую jQuery для выполнения своих вычислений, которые выгружаются в промежутки, если есть правильное решение, могу ли я включить не только упомянутое решение в мои выходные отрезки, но и в свои поля ввода текста?

Приветствие.

1 Ответ

0 голосов
/ 06 января 2012

Используйте это:

Number.prototype.format = function () {
    return this.toString().replace(/(\d)(?=(\d{3})+$)/g, '$1,');
};

Тогда вы можете просто позвонить .format() после округления:

$('#one').text(Math.round(a).format());
$('#two').text(Math.round(b).format());
$('#three').text(Math.round(c).format());
$('#four').text(Math.round(d).format());
$('#five').text(Math.round(e).format());
$('#six').text(Math.round(f).format());

$('#input1').text(Math.round(y).format());
$('#input2').text(Math.round(x).format());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...