"$ 1,250.00"과 같은 문자열을 수락하고 C#에서 소수점으로 변환하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1210553

  •  06-07-2019
  •  | 
  •  

문제

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

http://www.codeproject.com/kb/cs/eduardo_sierra.aspx

이것은 트릭을 수행해야합니다.


      string money = "$1,250.00";
      money = money.Replace('$',' ');
      decimal test = Convert.ToDecimal(money);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top