2010-12-06 7 views
4

私はnullable floatを持っています。小数点以下の桁数はドットまたはカンマで区切ることができます。 1.2または1,2。私はこの浮動小数点を正規表現と比較する文字列として必要とします。 Convert.toStringメソッドを使用すると、カンマで浮動小数点数は1.2でなく1.2になります。どのようにコンマやドットを失うことなく、floatをStringに変換できますか?私はalredyが異なる文化とそれを変換しようとしました。floatをコンマとドットで文字列に変換します。

ありがとうございました

+0

と1.200,00はどのように解析する必要がありますか? – SWeko

+0

1,2はなぜ12になるのですか? – VVS

+0

浮動小数点数はパーセントであるため、0,00〜100,00または0.00〜100.00の値しか取ることができません。 – holzleube

答えて

0

String.Format()関数はマスクを使用しています。しかし、比較のために、文字列を数値に変換するのではなく数値に変換することはできますか?それは正規表現の比較でなければならないのですか?

+0

小数点以下の桁数が2つしかない場合は、チェックのための正規表現が必要です。浮動小数点数はテキストボックスにバインドされており、このテキストボックスにはドットまたはコンマを使用できます – holzleube

-1

試してください:あなたは、出力が正しい形態であろうことを確認したい場合は、インバリアントカルチャを使用して

string s = yourFloat.ToString(); 

が推奨されるのではなく、文化があった場合、私は驚かれることと思いますカンマまたはを出力します。

また、ではなく、という正規表現を使用してfloatの値を検証することをお勧めします。

+0

私はこれを試しましたが、それはうまく動作しません。フロートを検証するにはどうすればよいですか? – holzleube

+0

@holzleube:フロートの値が実際には12で、おそらく1.2ではないと思われるので、私が印刷したコードが "12"という印字をしているとします。フロートを検証する方法は、必要な検証の種類によって異なります。 –

3

このためのソリューションは、次のようになります

float? num = 1.2f; 
string floatAsString = string.Format("{0:f}", num.Value); 

たぶん、あなたは、あなたが値を使用する前にHasValueプロパティがtrueであるかどうかを確認する必要があります。さらに例:http://alexonasp.net/samples/stringformatting/

0

あなたは、テキストボックスに "。"と "と "、"小数点の区切り記号(グループ化文字ではなく、千単位区切り記号とも呼ばれます)?

小数点の区切り文字とグループ化文字のみが得られることが確実な場合は、「、」を「。」に置き換えてください。 InvariantCultureでTryParseを使用して文字列を浮動小数点数に変換します。
またはクライアント側と同じカルチャをコード内で使用するため、両方とも同じ小数点区切り文字を使用します。

前述したように、floatにはさまざまな小数点記号の概念がありません。

0

WinFormアプリケーションの場合は、静的変数Application.CurrentCulture.NumberFormat.NumberDecimalSeparatorがあります。

ToString()を変換すると値によっては結果が異なることがあります。 このパラメータを操作して、必要な結果を得てください。

0

私はこの問題を解決しました。私は私のxamlで区切り記号としてコンマで値を入力することを許可するコンバーターを行ったので、小数点以下の桁数が2つしかない場合はチェックが必要ありません。あなたの助けをありがとう

関連する問題