I want to create a string from a decimal, whithout the decimal separator;
1,500.00 should become "150000".
What is the proper format for this? (Whithout string.replace , and .)
Thank you!
try:
decimal d = 1500m;
string s = (100*d).ToString("0");
d = 1500.001. The current proposal will output 150000 and not 1500001 which is how I am interpreting the request.Two solutions:
.ToString("0")NumberFormatInfo.NumberDecimalSeparator = String.Empty will throw.What's wrong with String.Replace anyway? It's simple and to the point:
CultureInfo info = CultureInfo.GetCultureInfo("en-US");
decimal m = 1500.00m;
string s = m.ToString("G", info).Replace(".", String.Empty));
Console.WriteLine(s); // outputs "150000"
m = 1500.0m;
string s = m.ToString("G", info).Replace(".", String.Empty));
Console.WriteLine(s); // outputs "15000"
m = 1500.000m;
string s = m.ToString("G", info).Replace(".", String.Empty));
Console.WriteLine(s); // outputs "1500000"
m = 1500.001m;
string s = m.ToString("G", info).Replace(".", String.Empty));
Console.WriteLine(s); // outputs "1500001"
m = 1500.00000000000000000000001m;
string s = m.ToString("G", info).Replace(".", String.Empty));
Console.WriteLine(s); // outputs "150000000000000000000000001"
"." should be info.NumberFormat.NumberDecimalSeparator?NumberFormat.NumberDecimalSeparator is . when info is the culture represented by en-US.decimal value = 1500;
Console.WriteLine((value * 100).ToString("0"));
* 100 in first version; funny thing is one downvote here =)
100and be done with it. The way your question is worded, it sounds way more general than it needs to be - e.g. it's obvious from what you've said that1,500.001should be output as150000, but your question requires it to be1500001.