>  기사  >  Java  >  Java 과학 표기법 자세한 설명

Java 과학 표기법 자세한 설명

高洛峰
高洛峰원래의
2017-03-19 11:26:114123검색

자바 지수 표기법

1 지수 표기법의 개념

1.1 유효 숫자

대략적인 숫자로, 왼쪽에서 0이 아닌 첫 번째 숫자부터 시작하여, 정확한 자릿수까지 사이의 모든 숫자를 이 대략적인 숫자의 유효 숫자라고 합니다.
예:
890314000은 8.90×10의 8승(반올림)으로 3개의 유효 숫자를 유지합니다.
839960000 유효 숫자 3개를 8.40×10의 8제곱(5개 항목)으로 예약합니다
0.00934593 유효 숫자 3개를 9.35×10의 -3제곱으로 예약합니다

1.2 E 표기법

대부분의 계산기와 컴퓨터 프로그램은 과학적 표기법으로 매우 크고 작은 결과를 표시합니다. 지수 위 첨자(예: 1011)는 화면에 표시하기 불편하기 때문에 일반적으로 문자 E 또는 e는 10제곱("×10b"로 표시)을 나타내는 데 사용되며 E 또는 e 다음의 숫자는 지수입니다. 즉, 임의의 두 실수 a와 b(b는 정수여야 함)에 대해 "aEb"로 표시되는 값은 a × 10b입니다. 여기서 문자 e는 수학 상수 e도 아니고 지수 함수 exp()도 아닙니다(대문자 E로 표시하면 오해를 더 많이 방지할 수 있습니다). 지수를 나타냅니다. 이 기호는 일반적으로 지수의 기본 기호가 아닌(과학적 표기법) E 또는 e 기호라고 합니다(후자가 발생하기도 함). 공식적인 출판물에서는 이 표시 방법을 사용하지 마십시오.
과학 표기법의 e 또는 E는 수학 상수 e 또는 함수 exp와 아무 관련이 없습니다.
이러한 작성 방식은 일부 컴퓨터 프로그램에서 위 첨자를 작성하는 불편함 때문에 발생합니다. 공식 출판물에서는 이러한 방식을 사용해서는 안 됩니다.
우리나라 국가표준의 과학적 표기법은 aEb 대신 a×10b 형식으로 표현됩니다(GB3101-1993, GBT15835-2011, GBT8170-2008 참조).


2 Java의 과학 표기법

Java에서는 Double의 값이 특정 조건을 만족하면 과학 표기법으로 표시됩니다(다음은 개인 테스트 결과가 아닙니다). 문서에서 얻은 결론):

@Test
publicvoid testPrintScientificNotation(){
//整数部分位数大于等于8时开始以科学计数法显示
System.out.println(-12345678.0);
System.out.println(12345678.0);
//整数位为0,当小数位以0开始连续出现大于等于3时开始以科学计数法显示
System.out.println(0.0001);
System.out.println(-0.0001);
}

결과

  1. <span class="pun">-</span><span class="lit">1.2345678E7</span>

  2. <span class="lit">1.2345678E7</span>

  3. <span class="lit">1.0E-4</span>

  4. -<span class="lit">1.0E-4</span>

통일해야 하는 경우가 많습니다. 과학적 표기법 또는 모두 일반 계산으로 표시됩니다.
온라인 정보에 따르면 API 구현 방법으로는 NumberFormat, DecimalFormat, BigDecimal 세 가지가 주로 언급됩니다.

2.1 NumberFormat

NumberFormat은 모든 숫자 형식에 대한 추상 기본 클래스입니다.

publicstaticString scientificNotation2String(Double d,int newValue){
String value =null;
NumberFormat nf =NumberFormat.getInstance();
// 设置此格式中不使用分组
   nf.setGroupingUsed(false);
// 设置数的小数部分所允许的最大位数。
   nf.setMaximumFractionDigits(newValue);
   value = nf.format(d);
return value;
}

입력한 소수점 이하 자릿수가 설정된 최대 소수 자릿수보다 클 경우 반올림됩니다.

2.2 DecimalFormat

DecimalFormat은 십진수의 형식을 지정하는 데 사용되는 NumberFormat의 구체적인 하위 클래스입니다. 이 클래스는 서양식, 아랍어 및 인도식 숫자에 대한 지원을 포함하여 모든 로캘의 숫자를 구문 분석하고 형식을 지정할 수 있는 다양한 기능으로 설계되었습니다. 또한 정수(123), 고정 소수점 숫자(123.4), 과학적 표기법(1.23E4), 백분율(12%) 및 금액($123)을 포함한 다양한 유형의 숫자를 지원합니다. 이 모든 콘텐츠는 현지화될 수 있습니다.

publicstaticString scientificNotation2String(Double d){
String value =null;
DecimalFormat decimalFormat =newDecimalFormat("0.00");//格式化设置  
       value = decimalFormat.format(d);
return value;
}

템플릿을 설정하고 유지할 소수 자릿수를 지정해야 합니다. 들어오는 값의 소수 자릿수가 지정된 소수 자릿수를 초과하면 반올림됩니다. 수신 값의 소수 자릿수가 지정된 소수 자릿수보다 작은 경우 제로 패딩을 설정할 수 있습니다.
값을 과학적 표기법으로 변환해야 하는 경우 템플릿을 수정하기만 하면 됩니다. 예를 들어 템플릿을 0.##E0

2.3 BigDecimal

BigDecimal은 불변의 임의 정밀도 부호 있는 십진수입니다.

publicstaticString scientificNotation2String(String str){
String value =null;
BigDecimal bd =newBigDecimal(str);
       value = bd.toPlainString();
return value;
}

BigDecimal에는

생성자 메서드가 많으므로 문자열 유형 값을 전달할 필요가 없습니다. BigDecimal의 toString 메소드와 toPlanString 메소드의 차이점:

위 내용은 Java 과학 표기법 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.