2

SQL テーブルからグリッドビューを取得しており、さまざまなドルの数字が含まれています。それらは数千、数百万、または数十億です。現在 {0:c0} を使用していますが、有効数字を 3 桁だけ表示するようにこれを縮小することに関心があります。

たとえば、$3,411,216,512.07 を $3.41B と表示したいと思います。$1,066,555.54 は $1.07M と表示されます。

ASP.NET でこれを行う簡単な方法はありますか、それとも jQuery を分割する必要がありますか? または、C# OnRowDataBound で行う必要がありますか?

4

3 に答える 3

0

数値を文字列に変換し、最初の 4 文字を取得します (単位やコンマなどのない純粋な数値を想定)。それを数値に戻し、四捨五入し、元の文字列の長さを数えて場所を決定します。小数点を入れて、B、M、K などのラベルを付けます。サーバー側で行うことをお勧めします。作成したくない場合を除き、ブラウザで行う意味はありませんどういうわけかインタラクティブです。

于 2012-04-24T15:17:43.847 に答える
0

私は OnRowDataBound でそれを行います。数値が 10 億より大きいかどうかを確認し、それを 10 億で割り、string.format の末尾に「B」を付け、通貨記号を前に付けてから返します。数が 100 万より大きいかどうかを確認します... など

おそらく動的に処理するアルゴリズムを作成できますが、これはお金であり、おそらく数兆に制限されているため、手動で行う方がはるかに高速です。

于 2012-04-24T15:34:53.680 に答える
0
    if(n>999999)
    {
    string number = Convert.ToString(n.slice[0,3]) + "M";
    ... 
//> (apply it to your datatable and then show it (in datagridview if that's
//> what you're using)
    }
   else if (n>...)

10 億を超える場合などにこれを繰り返しますが、コンマがどこにあるのかを確認する必要があります。どうすればいいのかわからない。これで、最初の 3 つの数字を思いどおりに取得し、「B」または「M」を適用することができます。

于 2012-04-24T15:40:04.003 に答える