반응형
문자열을 돈으로 포맷하는 방법
내가 좋아하는 캐릭터가 000000000100
나는 1.00와 그 반대로 변환하고 싶습니다.
선행 0은 제거되고 마지막 두 자리는 10 진수입니다.
더 많은 예를 들어 보겠습니다.
000000001000 <=> 10.00
000000001005 <=> 10.05
000000331150 <=> 3311.50
아래는 내가 시도하는 코드이며 소수점없이 결과를 제공합니다.
amtf = string.Format("{0:0.00}", amt.TrimStart(new char[] {'0'}));
문자열을 10 진수로 변환 한 다음 100으로 나누고 통화 형식 문자열을 적용합니다.
string.Format("{0:#.00}", Convert.ToDecimal(myMoneyString) / 100);
요청에 따라 통화 기호를 제거하고 대신 십진수로 변환하도록 편집되었습니다.
먼저 십진수로 변환 한 다음 화폐 형식으로 형식을 지정해야합니다.
전의:
decimal decimalMoneyValue = 1921.39m;
string formattedMoneyValue = String.Format("{0:C}", decimalMoneyValue);
실제 예 : https://dotnetfiddle.net/soxxuW
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
콘솔 출력 :
효과가있다!
decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
산출
Order Total: $1,921.39
특정 로케일 사용에 대한 올바른 형식화를 위해 문자열을 더블 / 십진수로 가져 오면
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
string s ="000000000100";
decimal iv = 0;
decimal.TryParse(s, out iv);
Console.WriteLine((iv / 100).ToString("0.00"));
이렇게 간단하게
var amtf = $"{Convert.ToDecimal(amt):#0.00}";
//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");
문자열을 십진수로 먼저 구문 분석하십시오.
당신은 또한 할 수 있습니다 :
string.Format("{0:C}", amt)
다음과 같이 시도하십시오.
decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
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, ".");
참고URL : https://stackoverflow.com/questions/10615405/how-to-format-string-to-money
반응형
'development' 카테고리의 다른 글
존재하지 않는 경우 생성 (0) | 2020.11.06 |
---|---|
Jekyll 및 Liquid로 정렬 된 탐색 메뉴 (0) | 2020.11.06 |
! (0) | 2020.11.06 |
Android Indeterminate ProgressBar 색상을 변경하는 방법은 무엇입니까? (0) | 2020.11.06 |
라텍스-몇 페이지의 여백 변경 (0) | 2020.11.06 |