Pregunta

He convertir el doble de 10 dígitos decimales + 4.

así que vamos a decir: Tengo un doble 999,56. Tengo para obtener 00000009995600 -> sin coma

Lo que tengo es:

string.format ( "{0: 0000000000,0000}", valor), pero lo que consigo es: 0000000999,5600

Entonces, ¿qué puedo hacer ahora es buscar la coma y eliminarlo, pero me gustaría saber si hay otra manera "limpia" de formato en este formato específico?

Gracias!

¿Fue útil?

Solución

Dado que usted ha dicho que quiere evitar String.Replace:

// avoid whacked out cultures
double value = 999.56m;
CultureInfo info = CultureInfo.GetCultureInfo("en-US");
string s = (10000 * value).ToString("00000000000000", info));
Console.WriteLine(s); // displays "00000009995600"

Pero, en realidad, no hay nada malo en ello:

double value = 999.56m;
CultureInfo info = CultureInfo.GetCultureInfo("en-US");
string s = value.ToString("0000000000.0000", info).Replace(
    info.NumberFormat.NumberDecimalSeparator,
    String.Empty)
Console.WriteLine(s); // displays "00000009995600"

Otros consejos

string.Format("{0:00000000000000}", value * 10000)

Bueno, voy a utilizar el método replace (), ya que supongo que no hay otra manera "simple":

Aquí está mi solución, que es casi lo mismo que la respuesta de Jason:

string sep = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
Console.WriteLine(String.Format(fromt, testvalue).Replace(sep, ""));

Gracias!

double val = 12345.6789;
return val.ToString().Split('.')[0];

Si no quiere (o no puede) se multiplica entonces esto puede trabajar:

string newValue = value.Replace(",", "");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top