小数点をN桁(2桁または4桁)で千単位の区切り文字を持たない文字列に変換する必要があります。
「XXXXXXX(ドット)DDDDD」
CultureInfo.InvariantCulture
の問題は、数千を区切る場所 '、'であるということです。
更新
これは、decimal型およびdouble型で機能するはずです。
decimal
の場合、ToStringメソッドを使用し、Invariantカルチャを指定して、小数点としてピリオドを取得します。
value.ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)
long
タイプは整数であるため、小数部はありません。それを文字列にフォーマットし、その後いくつかのゼロを追加することができます:
value.ToString() + ".00"
独自の小数点記号を指定するのは本当に簡単です。それを理解するのに約2時間かかりました:D。あなたは、あなたが現在指定している他の文化を使用していることがわかりますか?さて、パーサーに必要なのはIFormatProviderだけです。 CultureInfo.CurrentCulture.NumberFormat
フォーマッタとして、現在のカルチャのNumberDecimalSeparator
に従ってdoubleをフォーマットします。私がやったのは、NumberFormatInfo
クラスの新しいインスタンスを作成し、NumberDecimalSeparator
プロパティに必要なセパレータ文字列を設定するだけでした。以下の完全なコード:
double value = 2.3d;
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = "-";
string x = value.ToString(nfi);
結果? 「2-3」
ToString()
とIFormatProvider
を使用することを好みます。
double value = 100000.3
Console.WriteLine(value.ToString("0,0.00", new CultureInfo("en-US", false)));
出力: 10,000.30