Frage

Ich habe zu konvertieren Doppel zu 10 Ziffern + 4 dezimal.

so sagen wir: Ich habe ein Doppel 999,56. Ich habe zu 00000009995600 bekommen -> ohne Komma

Was ich habe, ist:

string.format ( "{0: 0000000000,0000}", Wert), aber was ich bekommen ist: 0000000999,5600

so was kann ich jetzt tun, ist für das Komma zu suchen und löschen, aber ich würde gerne wissen, ob es eine andere „saubere“ Art und Weise ist in diesem speziellen Format der Formatierung?

Danke!

War es hilfreich?

Lösung

Da Sie sagten, Sie wollen String.Replace vermeiden:

// 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"

Aber wirklich, es gibt nichts falsch mit ihm:

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"

Andere Tipps

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

Nun, ich benutze die Methode Replace (), da ich denke, es kein anderer „einfacher“ Weg ist:

Hier ist meine Lösung, die fast die gleichen wie Jasons Antwort lautet:

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

Danke!

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

Wenn Sie nicht wollen (oder können) multiplizieren, dann kann dies funktionieren:

string newValue = value.Replace(",", "");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top