2012-04-21 6 views
4

ない10進:0.0は、C#で はフォーマット私は0として小数点をフォーマットしようカンマ

string nv = textBox7.Text.Trim().Replace(',', '.'); 

res = Convert.ToDecimal(nv, new CultureInfo("en-GB")); 

このコードを試みたが、解像度は常にコンマで結果を表示し、

new CultureInfo("en-GB") 
でも試してみました

でも問題は解決しない ありがとうございます。

+0

'res'は' decimal'であり、文字列ではありません。だからそれはフォーマットを持つことはできません。 – CodesInChaos

+2

'0:0.0'は' decimal'でも意味しますか? ':'の意味は? – Oded

+1

@Oded私は 'string.Format'に' 0'パラメータがあると思います。 – CodesInChaos

答えて

1

resは、decimalです。文字列ではありません。だからそれはフォーマットを持つことはできません。小数は、関連する書式のない純粋な数学的数です。形式は、decimalstringに変換するときにのみ存在します。

res.ToString(CultureInfo.InvariantCulture)を使用して、小数点記号として.を使用する文字列を生成できます。

+0

私はそれをデータベースに挿入する小数点を持っています。 – tarek

+0

@userそしてどこに問題がありますか? – CodesInChaos

+0

問題が解決した、私はsqlCommand命令を使用するために10進変数を使用する必要があると思っただけでなく、文字列を考えることができます、私は文字列nv = textBox7.Text.Trim() 、 '。'); – tarek

10

他のコメントと回答が示唆するように、最初に理解するための基本があります。私はあなたが既に知っているいくつかのことを言ってますが、私と一緒に負担することができる。

  1. あなたtextBox7.Textstring、ないdecimalが含まれています。
  2. あなたは計算のためのdecimalをしたい場合は、あなたがresので(私はすでにここまでだと思います)
  3. それを変換する必要がありますが、あなたが何かがstringに変換します、その値を見たい時はいつでも進、です。それをマウスの上に置いてConsoleまたはデバッガに書いているかどうか。この変換では、現在の地域設定が使用されます。 このは、常にカンマが表示される理由です。
  4. 他の人に見せたり、必要な書式で書いたりするには、書式やCultureInfoを指定する必要があります。

a)Standard Format。例:これは、コンマの後に123456 2と番号をフォーマットする
Console.WriteLine(res.toString("F2"));
:123456.00

B)Custom Format。例:
Console.WriteLine(res.toString("[##-##-##]"));
[12-34-56]

C)CultureInfoのようなものにこの意志出力123456。例:ベルギーのような
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
この意志出力1234.56:コンマちなみに1234,56

で、Iは、EN-GBだと思うも

D)Combine :-)コンマに出力します。怒る!両方を行う!例:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
フォーマット123456〜123456,00!

関連する問題