2012-05-17 2 views
3

다음과 비슷한 문자열이 있습니다 : 7.6E+7.지수가있는 문자열 구문 분석 (Java)

내 질문은 간단합니다. 어떻게 이것을 해당 번호 (76000000)로 변환합니까?

substring을 사용하여 E+7 부분을 분리하고 7 부분을 구문 분석 한 다음 소수점 이하를 7 이상으로 이동하려고 시도했습니다. 더 쉬운 방법이 있나요?

감사합니다.

답변

4
long n = Double.valueOf("7.6E+7").longValue(); 
System.out.println(d); 
// prints 76000000 to the output. 
3

나는 Double.parseDouble()을 사용하는 것이 좋습니다 : str는 입력 문자열입니다

double val = Double.parseDouble(str); 

.

2

Double.parseDouble()을 사용하여 숫자로 가져올 수 있습니다.

String e = "7.6E+7"; 
System.out.println(Double.parseDouble(e)); 

출력 7.6E7을 제공합니다. 당신이 출력에서 ​​E를하지 않으려면 당신은 정수로 캐스팅없이 당신에게 출력 76000000을 줄 것이다

NumberFormat f = NumberFormat.getInstance(); 
f.setGroupingUsed(false); 
System.out.println(f.format(Double.parseDouble(e))); 

를 사용할 수 있습니다. 예는 수는 궁극적으로 당신이 할 수있는 다른 방법보다 정밀도를 잃지 않고 정수로 캐스팅 될 수 있는지 경우 출력을 76000000.1

1

을 줄 것이다 숫자에 0.1를 추가 :

출력에 76000000를 인쇄
int d = (int) Double.parseDouble("7.6E+7"); 
System.out.println(d); 

.