2013-02-08 2 views
1

'double.toString()'의 결과 문자열에 double의 정확한 값을 포함시키는 방법이 있습니까?toString의 소수점 자리 유지

나는 사용자 정의 형식 .toString("#.0")을 사용하여 솔루션의 조금을 발견했습니다

double d = 123.0 -> toString() will be "123" 

예를 들어

하지만 난 다시 내가

을 시작한 곳이야 더 이상 소수점 이하 자릿수를 추가하려면
double d = 123.00 -> toString("#.0") will be 123.0 
double d = 123.0 -> toString("#.00") will be 123.00 

내가 이것을하려고하는 이유는 실제로 표시되는 것과 다른 값을 사용해야하는 맞춤 텍스트 상자가 있고이 텍스트 상자에 값을 입력하려고 할 때 텍스트 상자가 무시되기 때문입니다. deci에 0을 입력하려고 할 때의 텍스트 mal 장소. 따라서 double의 정확한 값과 같도록 toString 값이 필요하므로이 번호를 올바르게 입력 할 수 있습니다.

답변

4

결과 문자열을 만들 수있는 방법은 두 배의 정확한 값을 포함는 '가지는 Double.toString()'에서 거기에 감사?

그것은 double의 정확한 값을 포함하지 -하지만 double (123), 및 123.0과 123.00 사이의 차이를 저장하지 않습니다.

decimal은 차이점을 저장하지만 어쨌든 정확한 십진수를 신경 쓰면 훨씬 적합합니다. 한편

는, 실제로 잘못된 장소에 비교를하고있는 같은 소리 :

나는이 작업을 수행하기 위해 노력하고있어 그 이유는 내가 가지고 있기 때문에 사용자 정의 텍스트 상자입니다 실제로 표시되는 값과 다른 값을 사용해야하며,이 텍스트 상자에 자신의 값을 입력하려고 할 때 소수점 이하 자릿수를 0으로 입력하려고하면 텍스트 상자가 텍스트를 무시합니다. (중 decimal 또는 double에) 값을 구문 분석하고 분석 된 값을 비교 -

문자열 값을 비교하지 마십시오.

이렇게하면 인 0과 같은 문제도 방지됩니다. 여기서 "0123"과 "123"은 같은 값을 나타내지 만 다른 문자열입니다.

+2

남자, 당신은 빠르다;) stackoverflow 귀하의 풀 타임 직업에 게시하고 있습니까? – animaonline

+0

+1 정보의 마지막 부분입니다. 십진법이 suplied 숫자의 차이를 알고 있다는 것을 몰랐다 –

+0

@animaonline 그의 전임 직업은 C 조도 포함되지 않았다. # –

관련 문제