2009-11-24 8 views
2

십진수를 자르고 반올림하지 않을 수 있습니까? 이렇게소수점 이하 자릿수 문제

decimal number = 12.159m; 

number에서 12.16이 아닌 12.15를 쉽게 얻을 수 있습니까?

쉬운 방법이 있습니까, 아니면 문자열 조작이 유일한 방법입니까?

답변

9

당신은 그 일이

decimal number = 12.159m; 
number = Math.Truncate(number * 100m)/100m; 
+0

고맙다. – Tuoski

4

당신은 당신이 (당신이 처리하는 경우) 대신 바닥의 자르기를 사용할 수있는 음수를 처리하는 방법에 따라

Math.Floor(number * 100)/100 

을 할 수 있습니다.

+3

바닥에는 음수에 대해 원하는 결과가 없습니다. – Joey

+0

나는 알고있다. 나는 그 정보도 가지고 대답을 업데이트했다. – HakonB

-1

또는 다른 방법을 시도 할 수는에서 예를

 
Regex r = new Regex("(?<postNo>\d+)\.(?<preNo>\d{1,3})"); 
Decimal d= 12.159M; 
Match m = r.Match(d.ToString()); 
if (m.Success){ 
string s = string.Format("{0}.{1}", m.Groups["postNo"].Text, m.Groups["preNo"].Text); 
Decimal d = Decimal.Parse(s); 
} 

를 들어, 입력을 캡처하고 진수로 다시 변환하는 정규식을 사용하는 것입니다 ' 예를 들어, \ d {1,2}에서 그 자리를 지키고 자 할 때 그 자리에서 두 자리 만 남기고 싶다면 예를 들어 그것을 바꾸십시오. 좋아, 나는 사람들이 말할 것입니다, 천천히 그리고 downvote이 답변을 ... 그것은 고양이를 피부하는 방법이 있다는 것을 보여주는 역할을합니다!

호프가 도움이 되었으면 안녕하세요, 탐.

P.S : 편집이 누락 된 리터럴을 이스케이프 처리 한 downvote 후에 깨닫게되었습니다.

관련 문제