문제

C#을 사용하여 소수점을 두 십진 자리로 표시하기 위해 소수점을 포맷하고 싶다. 그런 다음 소수점을 가져 와서 다른 소수점으로 빼게됩니다. 먼저 문자열로 바꾸지 않고이 작업을 수행하고 소수점으로 다시 변환 할 수 있기를 원합니다. 이것을 지정하는 것을 잊어 버려서 죄송하지만 반올림하고 싶지 않습니다. 마지막 소수점을 자르고 싶습니다. 이것을 할 방법이 있습니까?

도움이 되었습니까?

해결책

소수점을 반올림하고 싶지 않다면 소수점을 사용할 수 있습니다. 불행히도, 그것은 모든 소마를 잘라낼 수 있습니다. 이를 해결하려면 100을 곱하고 자르고 100으로 나눌 수 있습니다.

decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;

충분한 시간을하는 경우 확장 방법을 만들 수 있습니다.

public static class DecimalExtensions
{
  public static decimal TruncateDecimal(this decimal @this, int places)
  {
    int multipler = (int)Math.Pow(10, places);
    return Decimal.Truncate(@this * multipler) / multipler;
  }
}

다른 팁

당신이 사용할 수있는: Math.Round(number,2); 숫자를 두 십수 자리로 반올림합니다.

보다 이 특정 수학 오버로드 예를 들어.

당신은 그것을 포맷하고 싶지 않지만 그것을 반올림합니다. Math.round 함수를 시도하십시오.

보세요 수학

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top