2013-02-15 3 views
1

이것은 내가 시도한 것입니다.과학적 표기법의 두 배 변환

long varOne = 902621492492L; 
double varTwo = (double) varOne * 0.0001; 
System.out.println(varTwo); 

출력 : 9.02621492492e7. 왜 그렇지 않습니까? 90262149.2492 어떻게 해결할 수 있습니까? 감사!

+3

어 ... it _is_ 해당 번호 ... –

+0

[번호 형식] (http://docs.oracle.com/javase/tutorial/java/data/numberformat.html)을 참조하십시오. . – Geobits

+1

그건 과학 표기법 (http://en.wikipedia.org/wiki/Scientific_notation)이라고합니다. 보고 싶은 번호를 나타내는 다른 방법입니다. 표현을 변경하려면 [NumberFormat 클래스] (http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html)를 살펴보십시오. – jahroy

답변

2

출력 : 9.02621492492E7. 및 90262149.2492는 같은 번호를 나타냅니다.

+0

9와 90m은 어떻게 같은 수를 나타내는가? 나는 명백한 무엇인가 놓치고 있냐? – user2074209

+1

예, 있습니다. 번호는 과학 표기법으로 주어집니다. 'E'는 특별한 의미가 있습니다. 제발 좀 조사 해봐. 과학 표기법 [여기] (http://en.wikipedia.org/wiki/Scientific_notation)을 읽을 수 있습니다. – jahroy

0

long varOne = 902621492492L; 
double varTwo = varOne.doubleValue() * 0.0001; 
System.out.println(varTwo); 

하지만 9.02621492492E7을 말할 수있는 것과

는 대답 할 수 있어야합니다.

+0

코드가 필요합니까? – AlexWien

+0

doubleValue()를 사용할 수 있다고 생각합니다. 객체가 Long인데 원시 타입의 경우에는 아무 것도 없습니다. 틀 렸으면 고쳐줘. – Oneb

+0

@Oneb for primitives 거기에 캐스팅 연산자가 있습니다 : (double), 여기서는 필요 없습니다. – AlexWien