2009-03-03 19 views
12

金額を返すデータベースフィールドを照会していますが、これを文字列に割り当てていますが、最後に余分な00が追加されています。C#文字列への通貨

クエリは、私は、文字列(string value = Convert.ToString(ReturnValue);) にこれを割り当てるが、私は間違っていると、このアプローチする最良の方法だところ、私はそれを出力、あなたが私を助言することができ30.0000

として表示されたときに

30.00返しますか?

+0

(文字列に変換する前に)データベースから戻ってくる変数の.NETタイプは何ですか? –

+0

OPは文字列の書式設定コードを使用することができます。 –

答えて

1

はこれを試してみてください:

yourValueHere.ToString("0.00") 
3

私は、これは、フォーマット文字列を受け入れるToStringメソッドのオーバーロードを使用しています

string value = ReturnValue.ToString("0.00"); 

のようなものを使用すると思います。 上記のフォーマット文字列 "0.00"は、小数点以下2桁を指定します。

6

通貨文字を使用して文字列をフォーマットしますか?

もしそうなら...

decimal m = 3.4; 

string s = string.Format("{0:c}", m); 

// s will be £3.40, $3.40, etc depending on your locale settings 
+0

ありがとう、それは私のためにうまくいく... –

0

は、SQLServerのではお金のデータ型は精度の小数点以下4桁の10進のと同じです。これは、小数点が文字列に変換されるときに精度が保存されていると仮定します。最良の選択肢は、変換を行うときに常にフォーマット文字列 "#、## 0.00"を使用することです。

0

Moneyデータ型の精度は、小数点以下4桁です。 ToString()引数に書式を指定するか、文字列に変換する前に値を四捨五入する必要があります。

.ToString()を使用する場合は、私が知る限り丸めを取得していません。私はあなたが数字を失うだけだと思う​​。

ラウンドした場合、数字を切り落とすだけではありません。ここでは(未テストコード)を丸めるためのサンプルです:

string value = Math.Round(ReturnValue, 2).ToString(); 
12

MartGriff、

私の最高のアドバイスは、たSqlMoneyタイプを使用して、二重に変換することです。そこから、あなたが望むように出力することができます!ここで

は例です:より多くの書式設定オプションについては

System.Data.SqlTypes.SqlMoney ReturnValue; 

//Set your returnValue with your SQL statement 
ReturnValue = ExecuteMySqlStatement(); 

//Get the format you want 

//$30.00 
string currencyFormat = ReturnValue.ToDouble().ToString("c"); 

//30.00 
string otherFormat = ReturnValue.ToDouble().ToString("0.00"); 

、MSDNチェックアウト:運のベスト

http://msdn.microsoft.com/en-us/library/system.double.tostring.aspx

を、私はこのことができます願っています。

2

私は現在、VS 2013コミュニティ版を使用してボート・ドックWebシステムを開発中です。私は、テキストボックスに通貨​​価値を出力する方法を工夫していました。

Iを使用した方法

fieldName.Text = decimalValue.ToString( "C")。

これは完全に機能します。

関連する問題