2017-04-27 1 views
0
String value = 4.30000000e+01; 

parseInt하는 방법 ?? 나는 이미으로 parseInt 사용하여 시도 문자열 값 = 4.30000000e + 01 parseInt하는 방법은 무엇입니까?

자바

에서 (값을 10) .. 사실, 자바 스크립트에서는 parseInt 변환 할 수 있지만 자바 방법 원인 오류

어떻게 해결할 수 있습니까?

+0

일반적인 조언 : 오류가 발생하는 경우 오류에 대해 물어보십시오. 가능한 한 많은 세부 정보 (예 : 오류의 원인이 된 코드 부분)를 알려주십시오. – Thomas

+0

고마워요 토마스 :) 당신의 충고에 유의할 것입니다. –

답변

1

정수는 이와 같이 나타내지 않아야합니다. BigDecimal를 다음의 int 값을 걸릴 결국, 당신은 그것을 구문 분석 할 수 있습니다

int i = new BigDecimal("4.30000000e+01").intValue(); 
+0

아 .. 고마워. 형 .. 너 너무 빨라! –

0

e+01이 지수를 의미한다. 따라서 e+01은 실제로 10 pow 1입니다. Double 그 구문을 분석 할 수 있습니다

당신이 문자열이
Double.valueOf("4.30000000e+01") // 43.0 
1

, 당신은 있는 intValue()을 더블 개체로 구문 분석과 메소드를 호출 할 수

int r = Double.valueOf("4.30000000e+01").intValue(); 
System.out.println(r); 
0

참조 JLS 제 3.10.2 (http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.2) : 부동 소수점 리터럴의 소수 부분은 예와 같이 과학 표기법 (예 : e + 01) 형식으로 표현할 수 있습니다.

Double d = Double.parseDouble(value); 

은 정수 값 출력을 원하면 int로 캐스트 할 수있는 정밀도가 손실 된 double 값을 반환합니다.

관련 문제