Question

J'ai convertir deux à 10 chiffres + 4 décimales.

Disons que: J'ai une double 999,56. J'ai pour obtenir 00000009995600 -> sans virgule

Ce que j'est:

string.format ( "{0: 0000000000,0000}", valeur), mais ce que je reçois est: 0000000999,5600

donc ce que je peux faire maintenant est de rechercher la virgule et le supprimer, mais je voudrais savoir s'il y a une autre façon « propre » de mise en forme dans ce format spécifique?

Merci!

Était-ce utile?

La solution

Puisque vous avez dit que vous voulez éviter 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"

Mais vraiment, il n'y a rien de mal à cela:

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"

Autres conseils

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

Eh bien, je vais utiliser la méthode que je suppose qu'il n'y a pas d'autre moyen « simple » Remplacer ():

Voici ma solution qui est presque le même que la réponse de Jason:

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

Merci!

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

Si vous ne voulez pas (ou ne peut pas) multiplier cela peut fonctionner:

string newValue = value.Replace(",", "");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top