2

値を文字列形式で保存していますが、10 進数に変換したいと考えています。

元:

11.1010進数に変換しようとすると、文字列形式で保存されまし11.111.10.

以下の方法で試してみました

string getnumber="11.10";
decimal decinum=Convert.ToDecimal(getnumber);

私もこれを試しました

decinum.ToString ("#.##");

しかし、それは文字列を返します。これを10進数で表示したいです。

これに対する解決策は何ですか?

4

6 に答える 6

4

すでにコメント11.1されているように、と同じ値です11.10

decimal one=11.1;
decimal two=11.10;
Console.WriteLine(one == two);

出力しますtrue

to string メソッドの#フォーマッタはオプションの数字を意味し、それがゼロの場合は抑制します (抑制しても有効です - 0in4.05は抑制されません)。試す

decinum.ToString("0.00"); 

そして、文字列値が表示されます11.10

理想的には、実際に次のようなものを使用したい

string input="11.10";
decimal result;

if (decimal.TryParse(input,out result)) {
   Console.WriteLine(result == 11.10);
} else {
  // The string wasn't a decimal so do something like throw an error.
}

上記のコードの最後で、結果は目的の 10 進数になり、「true」がコンソールに出力されます。

于 2012-08-29T09:15:02.907 に答える
2

これは完全に機能します

string getnumber = "11.10";
decimal decinum = Math.Round(Convert.ToDecimal(getnumber), 2);
于 2012-08-29T09:36:51.750 に答える
1

decimalデータ型にはが格納されます。11.1 の値は 11.10 の値と同じです。数学的には、これらはまったく同じ数値であるため、適切に動作しています。

あなたが望んでいるように見えるのは、番号を11.10として表示することですが、それはそれを表示するコード次第です-ログファイルに書き込んでいるのか、Webページに表示しているのか、他の形式に表示しているのかはわかりません-しかし、decimalデータ型の内部表現とは無関係です。

于 2012-08-29T09:05:52.783 に答える
1

解決策はありません。これは予期された動作です。 11.10文字列で =11.1数で

そうしないと、 とは11.10異なり11.100ます。これは、文字列について話している場合は当てはまりますが、数値について話している場合は当てはまりません。

あなたの問題はプレゼンテーションレベルのみにあると思います。やりたいことをもっとうまく説明しないと。

于 2012-08-29T09:06:02.803 に答える
1

10 進数で表した 11.10 は 11.1 です。

数学的プロセスの場合、それ自体がどのように表示されるかについて心配する必要はありません。値を表示している場合、それを文字列に変換することも大したことではありません。覚えておいてください

decinum.ToString ("#.##");

(「ToString」関数から) 文字列を返し、「decinum」を文字列に変換していません。

于 2012-08-29T09:06:11.630 に答える
0
    string getnumber = "11.10";
    double decinum = double.Parse(getnumber);
于 2012-08-29T09:14:23.203 に答える