简体   繁体   中英

C# decimal tostring format

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");

Two solutions:

  • Create your own NumberFormatInfo and CultureInfo and pass it along to ToString.
  • Multiply the number by 100, then use .ToString("0")

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"
decimal value = 1500;
Console.WriteLine((value * 100).ToString("0"));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM