0

データベースからデータを取得して文字列として保存するクラスがあります。

sAnswer任意のデータ型を指定できますが、通常は int です。int の場合、コンマ区切りを持つようにフォーマットしようとしています。(1000000 -> 1,000,000) どうすればこれを行うことができますか?

Formatlike の使用はvar val = string.Format("{0:n0}", sAnswer);機能しません。

4

2 に答える 2

3

フォーマットは、文字列ではない値を文字列に変換するときに発生します。既に文字列である値に書式を適用することはできません。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
}
于 2013-03-06T14:24:11.540 に答える
2

これはあなたのために働きますか

int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
    sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}
于 2013-03-06T14:24:27.517 に答える