I have a string like 000000000100, which I would like to convert to 1.00 and vice versa.
Leading zero will be remove, last two digit is the decimal.
I give more example :
000000001000 <=> 10.00 000000001005 <=> 10.05 000000331150 <=> 3311.50 Below is the code I am trying, it is giving me result without decimal :
amtf = string.Format("{0:0.00}", amt.TrimStart(new char[] {'0'})); 115 Answers
Convert the string to a decimal then divide it by 100 and apply the currency format string:
string.Format("{0:#.00}", Convert.ToDecimal(myMoneyString) / 100); Edited to remove currency symbol as requested and convert to decimal instead.
6you will need to convert it to a decimal first, then format it with money format.
EX:
decimal decimalMoneyValue = 1921.39m; string formattedMoneyValue = String.Format("{0:C}", decimalMoneyValue); decimal value = 0.00M; value = Convert.ToDecimal(12345.12345); Console.WriteLine(value.ToString("C")); //OutPut : $12345.12 Console.WriteLine(value.ToString("C1")); //OutPut : $12345.1 Console.WriteLine(value.ToString("C2")); //OutPut : $12345.12 Console.WriteLine(value.ToString("C3")); //OutPut : $12345.123 Console.WriteLine(value.ToString("C4")); //OutPut : $12345.1234 Console.WriteLine(value.ToString("C5")); //OutPut : $12345.12345 Console.WriteLine(value.ToString("C6")); //OutPut : $12345.123450 Console output:
![]()
It works!
decimal moneyvalue = 1921.39m; string html = String.Format("Order Total: {0:C}", moneyvalue); Console.WriteLine(html); Output
Order Total: $1,921.39 2Once you have your string in a double/decimal to get it into the correct formatting for a specific locale use
double amount = 1234.95; amount.ToString("C") // whatever the executing computer thinks is the right fomat amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-ie")) // €1,234.95 amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("es-es")) // 1.234,95 € amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-GB")) // £1,234.95 amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-au")) // $1,234.95 amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-us")) // $1,234.95 amount.ToString("C", System.Globalization.CultureInfo.GetCultureInfo("en-ca")) // $1,234.95 1Try simple like this
var amtf = $"{Convert.ToDecimal(amt):#0.00}"; string s ="000000000100"; decimal iv = 0; decimal.TryParse(s, out iv); Console.WriteLine((iv / 100).ToString("0.00")); 1//Extra currency symbol and currency formatting: "€3,311.50": String result = (Decimal.Parse("000000331150") / 100).ToString("C"); //No currency symbol and no currency formatting: "3311.50" String result = (Decimal.Parse("000000331150") / 100).ToString("f2"); you can also do :
string.Format("{0:C}", amt) Try something like this:
decimal moneyvalue = 1921.39m; string html = String.Format("Order Total: {0:C}", moneyvalue); Console.WriteLine(html); In my case, I used this string format to display currency from decimal values without the symbol.
String format:
string.Format("{0:#,##0.00}", decimalValue) Example:
var decimalNumbers = new decimal[] { 1M, 10M, 100M, 1000M,10000M,100000M,1000000M,1000000000M }; foreach (var decimalNumber in decimalNumbers) { Console.WriteLine(string.Format("{0:#,##0.00}", decimalNumber)); } Parse to your string to a decimal first.
var tests = new[] {"000000001000", "000000001005", "000000331150"}; foreach (var test in tests) { Console.WriteLine("{0} <=> {1:f2}", test, Convert.ToDecimal(test) / 100); } Since you didn't ask for the currency symbol, I've used "f2" instead of "C"
try
amtf = amtf.Insert(amtf.Length - 2, "."); 1 private string cxp(string txt) { try { decimal n; n = Math.Round( Convert.ToDecimal( txt),2); string newTxt; newTxt = Convert.ToString(n); //txt = txt.Replace(",", "."); //string newtxt = string.Format("{0:#.00}", Convert.ToDecimal(txt) ); return newTxt.Replace(",", "."); } catch (Exception e) { MessageBox.Show(e.Message ,"Error al parsear número"); //throw; return txt; } }