문제

숫자 654987이 있습니다. 데이터베이스에 ID입니다. 문자열로 변환하고 싶습니다. 일반 Double.tostring (value)은 그것을 과학적 형태, 6.54987E5로 만듭니다. 내가 원하지 않는 것.

다른 서식 기능 Ive는 현재 로케일을 확인하고 적절한 천명의 분리기 등을 추가합니다. ID이기 때문에 어떤 형식도 전혀 받아 들일 수 없습니다.

어떻게 하는가?

편집] 명확히하기 위해 : 모든 숫자 열을 복식으로 취급하는 특수 데이터베이스에서 작업합니다. Double은 데이터베이스에서 검색 할 수있는 유일한 (숫자) 유형입니다.

도움이 되었습니까?

해결책

오래 사용 :

long id = 654987;
String str = Long.toString(id);

다른 팁

고정식을 사용하십시오 NumberFormat (특히 a DecimalFormat):

double value = getValue();
String str = new DecimalFormat("#").format(value);

또는 간단하게 캐스팅됩니다 int (또는 long 값의 범위가 너무 큰 경우) :

String str = String.valueOf((long) value);

그러나 다시 : 왜 당신은 정수 값 (예 : "전체"숫자)이있는 이유 double 처음에 변수?

데이터베이스의 정수 ID 인 경우 대신 정수를 사용하십시오. 그러면 정수로 형식화됩니다.

어때 String.valueOf((long)value);

는 어때:

Long.toString(value)

또는

new String(value)

또한 사용할 수 있습니다

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

저장하는 것이 ID라면 (즉, 실제 숫자 값이 중요하지 않은 다른 엔티티를 식별하는 데 사용되는 것) 두 배를 사용하여 저장해서는 안됩니다. 정밀도는 거의 확실하게 당신을 망칠 것입니다.

데이터베이스에서 정수 값을 허용하지 않으면 ID를 문자열로 저장해야합니다. 필요한 경우 사용하려는 정수의 문자열 표현을 문자열로 만드십시오. 선행 0을 적절하게 사용하면 문자열의 알파벳 순서를 Ints의 숫자 순서와 동일하게 만들 수 있습니다.

그것은 당신이 문제를 해결해야합니다.

Long.tostring ((긴) 값)는 어떻습니까?

    double d = 56789;
    String s = d+"";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top