首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户选项卡时,自动格式化“金额”字段文本框(十进制值),每3位数字设置一次昏迷。

当用户选项卡时,自动格式化“金额”字段文本框(十进制值),每3位数字设置一次昏迷。
EN

Stack Overflow用户
提问于 2012-03-26 01:55:18
回答 2查看 17K关注 0票数 1

有人能帮我完成以下要求或场景的代码吗.我达到了80 %,但坚持了autoformatting...Its的愚蠢但对我来说是新的:

那么,我的业务用户想要为一个大数量的字段文本框提供功能,它只允许两个小数点。例如,当她键入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,它应该是"2,000.00“,也就是说,如果没有她的小数点或否的值。在textbox中的number值中,应该是对23333.32的“to .00”,它应该是"23,333.32“

但是,我有一个问题,要实现输入的自动格式化,从小数位的第一位开始到小数位的左边,每3位数字间隔一次。我不知道如何对昏迷进行自动格式化.只有当用户完成输入键并按下选项卡时,才会发生这种情况。请帮助我实现这个目标:(如果您能像上面这样为我共享示例代码,我会非常高兴的。(在我们尝试编写代码时,请考虑我提到的所有场景) :)同时,我还将研究实现这一点的方法.我知道这对你来说可能很傻,但对我来说却是新的:(....thank,你们都.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 02:10:44

代码语言:javascript
复制
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

当文本框失去焦点时:

代码语言:javascript
复制
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)
}
票数 4
EN

Stack Overflow用户

发布于 2014-01-10 13:06:43

代码语言:javascript
复制
 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;
    }

请试试这张模糊的文本框。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9865742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档