データベースからデータを取得して文字列として保存するクラスがあります。
sAnswer
任意のデータ型を指定できますが、通常は int です。int の場合、コンマ区切りを持つようにフォーマットしようとしています。(1000000 -> 1,000,000) どうすればこれを行うことができますか?
Format
like の使用はvar val = string.Format("{0:n0}", sAnswer);
機能しません。
フォーマットは、文字列ではない値を文字列に変換するときに発生します。既に文字列である値に書式を適用することはできません。string
背面をint
一時的に変換する必要があります
string val = String.Format("{0:n0}", Int32.Parse(sAnswer));
定数Int32.Parse
のビットごとの組み合わせを使用して、変換を試行する方法に影響を与えることができますNumberStyles
string val = String.Format("{0:n0}", Int32.Parse(sAnswer,
NumberStyles.AllowLeadingWhite |
NumberStyles.AllowTrailingWhite|
NumberStyles.AllowExponent));
またはNumberStyles.Any
、最大の柔軟性を提供する enum 定数を使用するだけです。無効なエントリ (空の文字列など) を含めることができる場合sAnswer
は、安全な変換を実行します
string val;
int i;
if (Int32.TryParse(sAnswer, out i)) {
val = String.Format("{0:N0}", i);
} else {
val = ""; // Assign a default value here
}
これはあなたのために働きますか
int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}