Автоматическое форматирование текстового поля поля суммы (десятичное значение) с комой для каждых 3 цифр, когда вкладки пользователя - PullRequest
1 голос
/ 26 марта 2012

Может кто-нибудь помочь мне с кодом для требований ниже или сценариев ... Я достиг 80%, но застрял в автоформатировании ... Это глупо, но для меня ново: (

Ну, мой бизнес-пользовательхотел бы использовать для текстового поля большого количества, которое должно позволять только 2 десятичных знака. То есть, когда она печатает 1000, оно должно автоматически форматироваться как «1,000.00», а когда она печатает 1000000, оно должно быть как «1,000,000.00» и когда она печатает1K, он должен быть автоматически отформатирован как "1,000.00", а когда она наберет 10000.23, он должен быть "10,000.23", а M / m должен быть миллион, а b / B должен быть миллиард. Ну, я мог бы достичь всех этих M / M, k / Kи т. д. и ограничение десятичного числа только двумя десятичными точками. Даже я сохранил проверку, и все, как это, не позволяет использовать любые символы, кроме k / K, m / M, b / B, "." и ",". Пожалуйста, помните, если пользовательупоминает только 2k, это должно быть "2000.00", то есть, я имею в виду, если в числовом значении в текстовом поле нет значений, которые она вводит в качестве десятичного числа, или нет ".", это должно быть "number.00"по сравнению с 23333.32, который должен отображаться как «23,333.32»

Но у меня есть проблема с реализацией автоформатирования входов с запятой для интервала каждые 3 цифры, начиная с первой цифры слева от десятичного разряда.Я не уверен, как сделать это автоформатирование для комы ... Это должно происходить только тогда, когда пользователь заканчивает ввод на вкладке ввода и нажатия.Пожалуйста, помогите мне достичь этого :( Я был бы очень рад, если бы вы могли поделиться примером кода для меня, как описано выше. ( Пожалуйста, рассмотрите все сценарии, которые я упомянул, пока мы пытаемся найти код для этого ) :) Пока что я будутакже тренировка способов достижения этого ... Я знаю, это может показаться глупым для вас, но для меня это ново: (.... спасибо всем ....

Ответы [ 2 ]

4 голосов
/ 26 марта 2012
String.Format("{0:0,0.00}", 12345.67); // 12,345.67
String.Format("{0:0,0.00}", 12345.6); // 12,345.60
String.Format("{0:0,0.00}", 12345); // 12,345.00

String.Format("{0:0,0.##}", 12345.67); // 12,345.67
String.Format("{0:0,0.##}", 12345.6); // 12,345.6
String.Format("{0:0,0.##}", 12345); // 12,345

Когда текстовое поле теряет фокус:

double value;

if (double.TryParse(txtBox.Text, out value))
{
    txtBox.Text = String.Format("...", value);
}
else
{
    // Some code to handle the bad input (not parsable to double)
}
0 голосов
/ 10 января 2014
 function decimalformat(amount) {
        var delimiter = ","; // replace comma if desired
        var a = amount.split('.', 2)
        var d = a[1];
        var i = parseInt(a[0]);
        if (isNaN(i)) { return ''; }
        var minus = '';
        if (i < 0) { minus = '-'; }
        i = Math.abs(i);
        var n = new String(i);
        var a = [];
        while (n.length > 3) {
            var nn = n.substr(n.length - 3);
            a.unshift(nn);
            n = n.substr(0, n.length - 3);
        }
        if (n.length > 0) { a.unshift(n); }
        n = a.join(delimiter);
        if (d.length < 1) { amount = n; }
        else { amount = n + '.' + d; }
        amount = minus + amount;
        return amount;
    }

, пожалуйста, попробуйте это onblur вашего текстового поля

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