Formato doble con punto decimal
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!
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(",", "");