>백엔드 개발 >C++ >C#에서 Double 값을 특정 소수 자릿수로 자르거나 반올림하지 않고 자르는 방법은 무엇입니까?

C#에서 Double 값을 특정 소수 자릿수로 자르거나 반올림하지 않고 자르는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-27 12:15:111017검색

How to Truncate, Not Round, Double Values to a Specific Number of Decimal Places in C#?

C#에서 반올림 없이 Double 값 자르기

C#에서 배정밀도 부동 소수점 숫자를 문자열로 변환할 때 다음을 수행할 수 있습니다. 특정 소수 자릿수로 형식을 지정해야 하는 경우가 있습니다. 그러나 String.Format("{0:0.00}")을 사용하면 반올림이 발생할 수 있으며 이는 정확한 자르기를 원하는 특정 시나리오에서는 바람직하지 않습니다.

이 문제를 해결하려면 Math.Truncate의 조합을 사용하세요. () 및 NumberFormatInfo.CurrentInfo는 반올림 없이 잘림을 달성하고 문화권 구분을 유지합니다. 형식화.

해결책:

  1. Math.Truncate()를 사용하여 double 값을 자릅니다.
double myDoubleValue = 50.947563;
double x = Math.Truncate(myDoubleValue * 100) / 100;

이 작업 값에 100을 곱하고 소수점 이하 자릿수를 제거한 다음 다음으로 나눕니다. 100으로 원래 배율을 복원합니다.

  1. NumberFormatInfo.CurrentInfo를 사용하여 잘린 값의 형식을 지정합니다.
string s = x.ToString("N2", NumberFormatInfo.CurrentInfo);

이 형식 지정자는 다음을 포함하는 "N" 형식 문자열을 사용합니다. 뒤에 백분율 기호가 있는 통화 형식입니다. NumberFormatInfo.CurrentInfo는 서식이 현재 문화권 설정을 따르도록 보장합니다.

결과:

위 방법을 사용하면 정확히 다음과 같은 이중 값의 문자열 표현을 얻을 수 있습니다. 반올림 없이 소수점 이하 두 자리. 예를 들어 값 50.947563은 50.95로 반올림하지 않고 50.94로 잘립니다.

위 내용은 C#에서 Double 값을 특정 소수 자릿수로 자르거나 반올림하지 않고 자르는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.