2010-12-09 6 views
2

학술 번호 (e.g. the number, 10 power modulus)을 나타내는 Java 클래스 추상화가있어서, 그 위에 곱셈 또는 나눗셈과 같은 간단한 연산을 수행 할 수 있습니다.자바의 과학 표기법 추상화

참고 : 여기에서 Fraction과 (과) 비슷한 것을 찾으십시오.

+1

나는 그것이 "double"이라고 생각했다. 필요한 추가 추상화는 무엇이라고 생각하십니까? 나는 확실히 이것을 쓸 수 있습니다 : double modulus = 3.0e7; 그 밖의 무엇을 염두에 두셨습니까? – duffymo

답변

3

Emil이 말했듯이 BigDecimal이 도움이됩니다. 이중 가수와 int 지수를 입력 할 수있는 생성자가 없습니다. 새로운 생성자를 만들기 위해 클래스를 확장하거나 DecimalFormat을 정의 할 수 있습니다. 나는 클래스 DecimalFormat이 당신이 원하는 것을 할 것이라고 생각한다. 숫자가 어떻게 보이는지 정의하는 방법을 알려줍니다. 당신은 문자열을 사용하여 형식을 정의 할 필요가 튜토리얼은 http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

당신은 그것을 연산을 수행 한 후, 당신에게 번호를 줄 것이다 yourDecimalFormat.parse(yourStringtoBecomeScientificNumber) 전화를 BigDecimal로 캐스팅, 과학적인 숫자의 형식을 정의해야합니다 .

또한 특정 숫자의 소수점 이하 자릿수를 소수점 왼쪽에 넣어야합니다.

0

숫자를 숫자 + e + 지수로 쓸 수 있습니다 (예 : 1e2 = 100). 곱셈과 나눗셈이 작동해야합니다.

+0

'1e-308' ~'1e308' 범위로 제한됩니다. –

+0

유형을 1e2로 표시해야하는 경우 유형이 표시되지 않습니다. – user339108

1

나는 예제를 얻지 못했다. 숫자 표현의 다른 유형이 필요하다면 추상 클래스 Number을 확장함으로써 그렇게 할 수있다. 이것은 BigDecimals을 보라. 나는 이것이 당신이 찾고있는 것이라고 생각한다.