2012-03-26 4 views
1

以下の要件またはシナリオのコードを手伝ってもらえますか?80%を達成しました。私のビジネスユーザーは、大量のフィールドテキストボックスに小数点2桁しか入力できないようにしたいと考えています。1000を入力すると、自動的に "1,000.00彼女が1000000と入力すると、 "1,000,000.00"のようになり、1Kを入力すると自動的に "1,000.00"に、10000.23と入力すると "10,000.23"、M /私はこれらのM/M、k/Kなどすべてを達成でき、10進数を2小数点以下に制限することができましたs。私は妥当性を確認していても、k/K、m/M、b/B以外の文字は許されません。と "、"。また、ユーザーが2kと書いている場合は、「2,000.00」でなければなりません。 "23,333.32"と表示されるべきである "23333.2"に対して "number.00"でなければなりません。ユーザーのタブが表示されたときに、3桁ごとに桁区切りフィールドのテキストボックス(10進値)を自動的に書式設定する

しかし、入力を3桁ごとに間隔を空けて入力する自動フォーマットを実装する問題があります小数点第1桁から左桁まで私は昏睡状態のためにこの自動フォーマットを行う方法がわかりません...これは、ユーザが入力とキー入力タブでキー入力を終了したときにのみ起こります。上記のようなサンプルコードを共有できるのであれば、私はこれを達成するのを助けてください。(私がこのコードを試しているうちに私が言及したすべてのシナリオを考慮してください) :) :)一方、これを達成...私はそれはあなたに愚かに見えるかもしれないけど、私にとって新しい:(テキストボックスがフォーカスを失ったときに....

答えて

4
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

こんにちはYorye - まず、あなたの応答のために多くの感謝、私はあまりにもこのような何かをやって覚えています。残念ながら、私は欲しいものを達成していません。上記のコードでは、テキストボックスに「...」と表示されますが、他のいくつかのケースでは、入力したものと同じ番号が表示されています。すなわち、私が22を入力した場合、それは22だけを示します。それ以外の場合は、上記のような値ではなく「...」となります。 – Learner

+0

助けてください...私はどこかに間違って行くかどうかわかりません:(ごめんなさい。) – Learner

+0

これはフォーマットラインに "..."を残したからでしょう。 txtBox.Text = String.Format( "{0:0,0.00}"、value); – SimpleVar

0
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

あなたの答えのコードの書式を改善して読む?また、ソリューションが何であるかを明確にすることはできますか?ありがとう –

関連する問題