Domanda

Non ho convertire doppia a 10 cifre decimali + 4.

in modo da lasciare per dire: Ho un doppio 999,56. Ho ottenere 00.000.009,9956 milioni -!>, Senza virgola

Quello che ho è:

String.Format ( "{0: 0000000000,0000}", il valore), ma ciò che ottengo è: 0000000999,5600

in modo da quello che posso fare ora è quello di cercare la virgola ed eliminarlo, ma vorrei sapere se c'è un altro modo "pulito" di formattazione in questo specifico formato?

Grazie!

È stato utile?

Soluzione

Dal momento che hai detto che vuole evitare 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"

Ma in realtà, non c'è niente di sbagliato con esso:

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"

Altri suggerimenti

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

Bene, userò il metodo Replace () poiché immagino che non v'è altro modo "semplice":

Qui è la mia soluzione, che è quasi la stessa risposta di Jason:

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

Grazie!

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

Se non si vuole (o non può) moltiplicare allora questo può funzionare:

string newValue = value.Replace(",", "");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top