Hi,
You should use myDouble.ToString(CultureInfo.InvariantCulture) instead of
assuming a specific decimal separator and replacing that to decimal point.
Kornél
----- Original Message -----
From: "xavier de Blas" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Saturday, February 11, 2006 11:15 AM
Subject: Re: [Mono-list] Numbers with ","
Hello Paulo
When I INSERT in SQL i always insert with '.' as decimal point
separator, i do it like this:
Util.ConvertToPoint(myDouble)
On util class i have:
public static string ConvertToPoint (double myDouble) {
StringBuilder myStringBuilder = new StringBuilder(myDouble.ToString());
myStringBuilder.Replace(",", ".");
return myStringBuilder.ToString();
}
//sometimes i do it as a string
public static string ConvertToPoint (string myString) {
StringBuilder myStringBuilder = new StringBuilder(myString);
myStringBuilder.Replace(",", ".");
return myStringBuilder.ToString();
}
When I SELECT i do:
while(reader.Read()) {
myArray.Add (reader[0].ToString() + ":" +
Util.ChangeDecimalSeparator(reader[1].ToString()) + ":" +
(...)
}
on Util class i have:
//used for load from the database all numbers with correct decimal
separator (locale defined)
public static string ChangeDecimalSeparator(string myString) {
if(myString == "") {
return "0";
}
System.Globalization.NumberFormatInfo localeInfo = new
System.Globalization.NumberFormatInfo();
localeInfo = System.Globalization.NumberFormatInfo.CurrentInfo;
StringBuilder myStringBuilder = new StringBuilder(myString);
if(localeInfo.NumberDecimalSeparator != ".") {
myStringBuilder.Replace(".", localeInfo.NumberDecimalSeparator);
}
return myStringBuilder.ToString();
}
This are pieces of code of Chronojump, files:
http://cvs.gnome.org/viewcvs/chronojump/src/sqlite/jump.cs?rev=1.15&view=log
http://cvs.gnome.org/viewcvs/chronojump/src/util.cs?rev=1.19&view=log
http://gnome.org/projects/chronojump
A bondade
On ds, 2006-02-11 at 00:56 +0000, Paulo Augusto wrote:
In portuguese (in fact, every language i know except english), numbers
are separated by a "," comma, instead of by a "." dot.
So, when my mono program needs a number from an Entry():
Convert.ToSingle (string);
and then i want to pass that number to MySql through an sql string:
float.ToString();
results in a string that has a "," which brakes the sql string.
Anyone has any idea on what's the best way to handle this localisation
issue?
I tried working around it with:
string.Replace (char, char);
and
string.Replace (string, string);
to the resulting string but i think both are broken since they do not
work at all.
One would think this issue would be frequent but i do not seem to be
able to find any information at all anywhere about it.
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list