当用户制表时,金额字段文本框(十进制值)的自动格式,每3位具有昏迷
本文关键字:格式 3位 昏迷 十进制 用户 金额 字段 文本 | 更新日期: 2023-09-27 18:28:54
有人能帮我编写以下需求或场景的代码吗。。。我达到了80%,但坚持使用自动格式。。。这对我来说很傻,但很新鲜:(
好吧,我的商业用户希望有一个大金额字段文本框,该文本框应该只允许2个小数点。即,当她键入1000时,它应该自动格式化为"1000.00",当她输入1000000时,应该像"1000000.00",而当她键入1K时,它应该自动格式化为"1000.00",当她键入10000.23时,它应该是"10000.23",M/M应该是million,b/b应该是billion。我可以实现所有这些M/M、k/k等,并将小数点限制在2个小数点以内。甚至我也保留了验证,所有类似的都不允许使用除k/k、m/m、b/b、"."answers","之外的任何字符。还请记住,如果用户只提到2k,它应该是"2000.00",也就是说,如果她没有为十进制输入值,或者在文本框中的数字值中没有".",那么它应该是23333.32的"数字.00",而23333.32应该显示为"23333.32"
但我有一个问题,就是从第一位到小数点左边,每隔3位就用昏迷来实现输入的自动格式。我不知道如何对昏迷进行自动格式化。。。只有当用户完成输入并按下tab键时,才会发生这种情况。请帮助我实现这一点:(如果你能像上面那样为我分享示例代码,我会非常高兴。(请考虑我提到的所有场景,同时我们尝试为此编写代码):)同时我也会锻炼实现这一目标的方法。。。我知道这对你来说可能很傻,但对我来说是新的:(……谢谢大家……
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)
}
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;
}
请在您的文本框