アプリで3つの10進データ形式を受け入れる必要があります。
- 123456,78 => 123456.78
- 123,456.78 => 123456.78
- 123456.78 => 123456.78
特定の状況で1つの形式が使用されるとは限りません。必要なのは、指定された形式に関係なく、文字列から10進値を取得することです。
これを行うための賢い方法はありますか?
使おうとしていた
var culture = CultureInfo.CreateSpecificCulture("en-US");
しかし、これはwp7では機能しないようです。
これまで私はこれを行いました:
public static class Extensions
{
public static decimal toDecimal(this string s)
{
decimal res;
int comasCount=0;
int periodsCount=0;
foreach (var c in s)
{
if (c == ',')
comasCount++;
else if (c == '.')
periodsCount++;
}
if (periodsCount > 1)
throw new FormatException();
else if(periodsCount==0 && comasCount > 1)
throw new FormatException();
if(comasCount==1)
{
// pl-PL
//parse here
}else
{
//en-US
//parse here
}
return res;
}
}