Ciao
Prova a vedere se questo metodo dà i risultati che cerchi:
string[] inputs = { "0,00", "0,59", "8,29", "123,89", "0000,99", "1,9999", "0" };
string[] outputs = new string[inputs.Length];
NumberFormatInfo enus = CultureInfo.GetCultureInfo("en-us").NumberFormat;
NumberFormatInfo itit = CultureInfo.GetCultureInfo("it-it").NumberFormat;
for (int i = 0; i < inputs.Length; i++)
{
outputs[i] = double.Parse(inputs[i], itit).ToString("#.00##", enus);
}
StringBuilder outp = new StringBuilder();
for (int i = 0; i < inputs.Length; i++)
{
outp.Append(inputs[i]);
outp.Append(" --> ");
outp.AppendLine(outputs[i]);
}
MessageBox.Show(outp.ToString());
Se vuoi fermarti alle due cifre decimali, arrotondando quello che segue, puoi sostituire "#.00##" con "#.00"
P.S: L'aggiungo anche in VB dato che ho visto ora che in altri post usavi quel linguaggio:
Dim inputs() As String = {"0,00", "0,59", "8,29", "123,89", "0000,99", "1,9999", "0"}
Dim outputs(inputs.Length) As String
Dim enus As NumberFormatInfo = CultureInfo.GetCultureInfo("en-us").NumberFormat
Dim itit As NumberFormatInfo = CultureInfo.GetCultureInfo("it-it").NumberFormat
For i As Integer = 0 To inputs.Length - 1
outputs(i) = Double.Parse(inputs(i)).ToString("#.00##", enus)
Next
Dim outp As New StringBuilder
For i As Integer = 0 To inputs.Length - 1
outp.Append(inputs(i))
outp.Append(" --> ")
outp.AppendLine(outputs(i))
Next
MsgBox(outp.ToString())
Luca