Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2005-07-20 06:07:09 +0400
committerFrancisco Figueiredo Jr. <fxjr@mono-cvs.ximian.com>2005-07-20 06:07:09 +0400
commit54da959ccce7642f7af44b220b4bd240ee6aa30a (patch)
treec5c7eac2beb4a59cc8e6aa1445548bebf187ce75 /mcs/class/Npgsql
parent5c4dd971aebfe949a3ee6b6c67d5e2431f5d3c0d (diff)
2005-07-19 Francisco Figueiredo Jr. <fxjrlists@yahoo.com.br>
* NpgsqlTypes/NpgsqlTypeConverters.cs: Gborg 1370. Fixed problems with Money type when using a culture which doesn't use dot as decimal separator. Also fixed problem where only Decimal types (i.e.: 7.4M) could be used as Money type values. Now Float values can be used too. svn path=/trunk/mcs/; revision=47456
Diffstat (limited to 'mcs/class/Npgsql')
-rw-r--r--mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypeConverters.cs64
1 files changed, 54 insertions, 10 deletions
diff --git a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypeConverters.cs b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypeConverters.cs
index fa4a40fbd3c..50d53d7d8be 100644
--- a/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypeConverters.cs
+++ b/mcs/class/Npgsql/NpgsqlTypes/NpgsqlTypeConverters.cs
@@ -181,6 +181,7 @@ namespace NpgsqlTypes
// It's a number with a $ on the beginning...
return Convert.ToDecimal(BackendData.Substring(1, BackendData.Length - 1), CultureInfo.InvariantCulture);
}
+
}
/// <summary>
@@ -247,8 +248,10 @@ namespace NpgsqlTypes
/// </summary>
internal static String ToMoney(NpgsqlNativeTypeInfo TypeInfo, Object NativeData)
{
- return "$" + ((Decimal)NativeData).ToString(DateTimeFormatInfo.InvariantInfo);
+ return "$" + ((IFormattable)NativeData).ToString(null, CultureInfo.InvariantCulture.NumberFormat);
}
+
+
}
@@ -273,7 +276,11 @@ namespace NpgsqlTypes
Match m = pointRegex.Match(BackendData);
- return new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(m.Groups[2].ToString()));
+ return new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[2].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat));
@@ -287,8 +294,17 @@ namespace NpgsqlTypes
Match m = boxlsegRegex.Match(BackendData);
- return new NpgsqlBox(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(m.Groups[2].ToString())),
- new NpgsqlPoint(Single.Parse(m.Groups[3].ToString()), Single.Parse(m.Groups[4].ToString())));
+ return new NpgsqlBox(
+ new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[2].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)),
+ new NpgsqlPoint(
+ Single.Parse(m.Groups[3].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[4].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)));
}
/// <summary>
@@ -298,8 +314,17 @@ namespace NpgsqlTypes
{
Match m = boxlsegRegex.Match(BackendData);
- return new NpgsqlLSeg(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(m.Groups[2].ToString())),
- new NpgsqlPoint(Single.Parse(m.Groups[3].ToString()), Single.Parse(m.Groups[4].ToString())));
+ return new NpgsqlLSeg(
+ new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[2].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)),
+ new NpgsqlPoint(
+ Single.Parse(m.Groups[3].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[4].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)));
}
/// <summary>
@@ -316,7 +341,11 @@ namespace NpgsqlTypes
{
if (open)
- points.Add(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(m.Groups[2].ToString())));
+ points.Add(new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[2].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)));
else
{
// Here we have to do a little hack, because as of 2004-08-11 mono cvs version, the last group is returned with
@@ -329,7 +358,11 @@ namespace NpgsqlTypes
if (group2.EndsWith(")"))
group2 = group2.Remove(group2.Length - 1, 1);
- points.Add(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(group2)));
+ points.Add(new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(group2, NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)));
}
m = m.NextMatch();
@@ -365,7 +398,11 @@ namespace NpgsqlTypes
if (group2.EndsWith(")"))
group2 = group2.Remove(group2.Length - 1, 1);
- points.Add(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(group2)));
+ points.Add(new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(group2, NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)));
m = m.NextMatch();
@@ -382,7 +419,14 @@ namespace NpgsqlTypes
internal static Object ToCircle(NpgsqlBackendTypeInfo TypeInfo, String BackendData, Int16 TypeSize, Int32 TypeModifier)
{
Match m = circleRegex.Match(BackendData);
- return new NpgsqlCircle(new NpgsqlPoint(Single.Parse(m.Groups[1].ToString()), Single.Parse(m.Groups[2].ToString())), Single.Parse(m.Groups[3].ToString()));
+ return new NpgsqlCircle(
+ new NpgsqlPoint(
+ Single.Parse(m.Groups[1].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat),
+ Single.Parse(m.Groups[2].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat)),
+ Single.Parse(m.Groups[3].ToString(), NumberStyles.Any,
+ CultureInfo.InvariantCulture.NumberFormat));
}
}