프로필카테고리질문하기
로그인 계정 만들기

double ToString 과학적 표기법

03 개월 전

0.00001에 ToString을 하면 과학적 표기법으로 변환돼요.

double d = 0.00001; Console.WriteLine(d.ToString()); /* 결과: 1E-05 */

double에 ToString() 메서드를 실행할 때 "1E-05" 처럼 과학적 표기법으로 변환하지 않고 "0.00001" 처럼 일반적으로 변환하려면 어떻게 해야 하나요?

0.1.ToString("F5"); /* 결과: 0.10000 */ 0.00001.ToString("F5"); /* 결과: 0.00001 */

이렇게 해봤는데 0.1이 "0.10000" 으로 변환되네요.

0.1 은 "0.1" 으로, 0.00001 은 "0.00001" 으로 각각 변환하고 싶어요.

답변하기 의견 추가
의견 (0)
더 많은 의견 보기

답글 (1)

ToString 메서드에 형식을 지정하지 않으면 기본으로 "G" 형식으로 변환돼요.

double.ToString() 에서 "G" 형식은 과학적 표기법에서 지수가 -5 보다 큰 경우 고정 소숫점 형식 (0.1) 을 반환하고, 그렇지 않은 경우 과학적 표기법 (1E-05) 을 반환해요.

Decimal으로 캐스팅

가장 쉬운 방법은 decimal으로 캐스팅하는 방법이에요.

이 방법으로는 소수점 아래로 최대 28자리 까지 표시할 수 있어요.

double d = 0.00001; ((decimal)d).ToString(); /* 결과: 0.00001 */
형식 지정자

또는 몇 번째 자리의 소수점까지 표시할지 형식을 지정할 수도 있어요.

0.1.ToString("0.#####"); /* 결과: 0.1 */ 0.00001.ToString("0.#####"); /* 결과: 0.00001 */

만약 아주 작은 값을 포함한 모든 double을 고정 소숫점 형식으로 표시하고 싶다면 소수점 아래로 339 자리를 표시해야 해요.

string format = "0." + new string('#', 339); 0.00000000000000000000001.ToString(format); /* 결과: 0.00000000000000000000001 */
의견 추가
의견 (0)
더 많은 의견 보기

정보

업보트
0
질문됨
3 개월 전
최근 활동
3 개월 전

카테고리

C#