Q:

double con coma siempre C#

Estoy capturando de un input en HTML que pasa a un string de C# asi:
string valor="12,5" o "15.5" //pueden ser valores con punto o coma

despues de tener el valor, reemplazo el punto con coma:
string nuevoValor = valor.Replace(".", ","); //salida: 15,5

Actualmente mi computadora tiene un CurrentCulture de es-ES, cuando trato de convertir el string a double pasa esto:
double valor1=Convert.ToDouble("15.5") //salida:155
double valor2=Convert.ToDouble("15,5") //salida:15.5 o aveces 15,5 no quiere depender de cuando le de la gana convertir a coma o no

Si aplico esto, si convierte de manera correcta:
double valor3= Double.Parse("15,5",NumberStyles.AllowDecimalPoint, CultureInfo.CurrentCulture); //salida: 15,5

Tengo que pasar la aplicacion que estoy haciendo a la computadora que la necesita, la cual tiene un CurrentCulture de en-US, lo cual no va a servir puesto que anteriormente habia utilizado InvariantCulture y me daba error tambien (según se InvariantCulture usa en-US como default)
Como puedo convertir un string que tenga punto o coma a double con coma sin importar que CurrentCulture tenga?

A:

Es sencillo simplemente usa la siguiente funcion:
public decimal TextoaDecimal(string s){
var clone = (CultureInfo)CultureInfo.InvariantCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ",";
clone.NumberFormat.NumberGroupSeparator = ".";
// ejemplo string s = "1,14535765" o string s="1.141516";
decimal d = decimal.Parse(s, clone);

return decimal;
}

saludos

