45

テキストボックスから読み取った文字列があります。小数点区切り用のカンマが含まれています。

(コンマ)にNumberFormatInfo.CurrencyDecimalSeparator設定しましたが、文字列を 10 進数に変換すると、10 進数のドット区切り値が取得されます。,Convert.ToDecimal(mystring);

例:

decimal a=Convert.ToDecimal("1,2345"); ----> decimal is 1.2345

私も試しました:

double a=Convert.ToDouble("1,2345"); 

しかし、再び10進数のドット

4

7 に答える 7

8

返信ありがとうございます。

私はxmlファイルに10進数を書かなければならないので、問題を見つけました。このディスカッションで xml ファイルの標準では 10 進数値にドットを使用し、これはカルチャに依存しないことを学びました。したがって、私の解決策は、 xmlファイルにドット 10 進数を書き込み、同じ xml ファイルから読み取った文字列を変換するmystring.Replace(".", ","); ことです。コード内のカルチャ設定を尊重しません。

于 2013-11-11T20:47:01.990 に答える
2

Visual Studio で decimal または double の値を表示しています。これは、コードにあるカルチャ設定を尊重しません。

コンマを小数点として使用する値を表示するdecimalには、コントロール パネルで地域と言語の設定を変更します。double

于 2013-11-10T18:51:31.150 に答える
0
    usCulture = new CultureInfo("vi-VN");
Thread.CurrentThread.CurrentCulture = usCulture;
Thread.CurrentThread.CurrentUICulture = usCulture;
usCulture = Thread.CurrentThread.CurrentCulture;
dbNumberFormat = usCulture.NumberFormat;
number = decimal.Parse("1.332,23", dbNumberFormat); //123.456.789,00

usCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentCulture = usCulture;
Thread.CurrentThread.CurrentUICulture = usCulture;
usCulture = Thread.CurrentThread.CurrentCulture;
dbNumberFormat = usCulture.NumberFormat;
number = decimal.Parse("1,332.23", dbNumberFormat); //123.456.789,00

/*Decision*/
var usCulture = Thread.CurrentThread.CurrentCulture;
var dbNumberFormat = usCulture.NumberFormat;
decimal number;
decimal.TryParse("1,332.23", dbNumberFormat, out number); //123.456.789,00
于 2020-05-26T10:56:42.940 に答える