4

データ型がFloatの列を持つSQLテーブルがあります。この列にパーセンテージ値を書き込む外部アプリがあり、それらを読み取ってWebアプリに表示します。

小数をパーセンテージに変換する方法を理解しています。通常は100を掛けますが、これは少し異なります。

DBの値は次のようになります。

 0.95  <-- DB  5%  <-- UI
 0.85  <-- DB  15% <-- UI
 0.5   <-- DB  50% <-- UI

私が試してみました

number * percentage / 100

((percentage /100) * value).ToString();

 string percentage = string.Format("Percentage is {0:0.0%}", value);

 percentage/100m*value

 myDecimal.ToString("0.00");

そして最後に、私が思ったことは近かった:

Math.Round(myDecimal, 2).ToString("{0.00}");

そしてもちろん、次のようなさまざまな文字列フォーマット

 MyDecimal.ToString("P"), .ToString("P1"), etc)

C#でのパーセンテージのフォーマット、丸め、変換に関する記事:

パーセンテージを最も近い分数に 変換します。C#で の作業パーセンテージ、 http://www.dotnetperls.com/percentage

しかし、私は一生の間、必要な出力を提供するための数学計算や組み込みのc#変換を見つけることができません。

私がしなければならないことは、0.96桁をある数値で減算し、次にそれを100で乗算することですが、0.5が50%であると、常に私の計算が失敗します。

これは一般的な変換のようです。私がここで欠けているものは何ですか?

アップデート

これが私が最終的に得た解決策であり、うまく機能します!(ありがとうリード)

            var li = new List<Object>();
        var retVal = new List<string>();

        li.Add(.5);       // 50%
        li.Add(.95);      // 95%
        li.Add(.85);      // 85%
        li.Add(0.87813);  // 12.18700%

        foreach (var o in li)
        {
            var value = Convert.ToDouble(o);
            string percentage = string.Format("Percentage is {0:0.0%}", 1.0 - value);

            retVal.Add(percentage);
        }

リンク

完全を期すために、C#での小数、パーセンテージ、倍精度、および変換に関するリソースのかなり簡潔なリストを次に示します。

A +

パーセンテージ値のc#
形式の小数での作業パーセンテージ?
パーセンテージを最も近い分数に変換する
http://www.dotnetperls.com/percentage.NET
:小数から丸められた文字列
C#フォーマットされた文字列を数値に戻す組み込み関数はありますか?

A-

小数点を特定の小数点以下の桁数でパーセントとしてフォーマットします
。小数点以下をパーセントに変換するか、小数点以下をシフトします。パーセンテージ文字列をdoubleに変換する方法
は?

B +

小数を表示する2つの方法
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

4

3 に答える 3

5

私はあなたが望むと信じています:

string percentage = string.Format("Percentage is {0:0.0%}", 1.0 - value);

番号だけが必要な場合:

string percentage = (1.0 - value).ToString("P");

または、小数精度のない数値:

string percentage = (1.0 - value).ToString("P0");
于 2013-02-05T19:54:22.740 に答える
3

試す:

(1 - currentPercentage) * 100

例:

(1 - 0.95) * 100 = 0.05 * 100 = 5 [%]

フォーマット:

string.Format("Percentage is {0}%", (1.0 - value) * 100);

または@Reedによって提案された最高のもの

于 2013-02-05T19:50:24.710 に答える
2

パーセントから1をサブラクトし、100を掛けます。1-.5= .5 = 50%。1-.95 = .05 = 5%

于 2013-02-05T19:49:16.633 に答える