6

float 値を文字列に変換したい。

以下は、変換に使用しているコードです。

static void Main(string[] args)
        {
            string s =string.Format("{0:G}", value);                
            Console.Write(s);
            Console.ReadLine();
        }

そしてそれは次のように出力します2.5

しかし、私の問題は、2.50後でプロジェクトの元の値と比較したいので、値を取得したいということです。

それを行う方法があれば教えてください。

4

3 に答える 3

5

プロジェクトの後半で元の値と比較したいからです。

...次に、元の値の小数点以下の桁数を保存する必要があります。値が float になると、この情報は失われます。float 表現はまったく同じです。2.52.502.500

したがって、基本的に、次の可能性があります(優先順)。

  • 古い値と新しい値の間で文字列比較を行わないでください。両方の値を float に変換してから比較します ( float は正確ではないため、許容誤差があります)。
  • 古い値の小数点以下の桁数を格納し、それを使用myFloat.ToString("F" + numDecimals.ToString())して文字列に変換します。
  • float ではなく文字列として値を格納します。明らかに、その値を計算することはできません。

または、フロートの使用を主張しない場合はdecimals、目的に合うかもしれません: doは有効桁数を格納します:

decimal x = Decimal.Parse("2.50", CultureInfo.InvariantCulture);
decimal y = Decimal.Parse("2.500", CultureInfo.InvariantCulture);

Console.WriteLine(x.ToString()); // prints 2.50
Console.WriteLine(y.ToString()); // prints 2.500
于 2013-09-27T06:29:26.367 に答える