Formato doppio senza decimali
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!
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(",", "");