"$ 1,250.00"과 같은 문자열을 수락하고 C#에서 소수점으로 변환하려면 어떻게해야합니까?
문제
"$ 1,250.00"과 같은 문자열을 수락하고 C#에서 소수점으로 변환하려면 어떻게해야합니까?
그냥 대체 ( "$", "") 및 ( ",", "")를 수행합니까? 아니면 이런 종류의 입력을 처리 해야하는 다른 방법이 있습니까?
해결책
allowcurrencysymbol 옵션 (및 기타 지원 옵션)을 사용하여 Decimal.parse를 사용해 보셨습니까?
var d = Decimal.Parse(input,
NumberStyles.AllowCurrencySymbol |
NumberStyles.AllowDecimalPoint |
NumberStyles.AllowThousands);
다른 팁
난 그냥해야하나요
Replace("$", "")
그리고Replace(",", "")
[?]
아니요. 이와 같은 코드는 유지하기가 재미 있지 않습니다. 둘째, '$'는 세계에서 유일한 통화 기호가 아니며 ',', '는 유일한 수천 개의 묘사가 아닙니다. 즉, 당신이 생각하는 것처럼 코드는 세계화 문제를 어렵게 만듭니다.
i] 이런 종류의 입력을 처리 해야하는 다른 방법이 있습니까?
예. 사용 Decimal.Parse
~와 함께 NumberStyles.Currency
:
string s = "$1,250.00";
decimal d = decimal.Parse(s, NumberStyles.Currency);
이제 형식으로 :)
decimal val = Decimal.Parse(
Value.Replace(" ", ""),
NumberStyles.AllowThousands
| NumberStyles.AllowDecimalPoint
| NumberStyles.AllowCurrencySymbol
);
이것은 트릭을 수행해야합니다.
string money = "$1,250.00";
money = money.Replace('$',' ');
decimal test = Convert.ToDecimal(money);
제휴하지 않습니다 StackOverflow