대략적인 숫자로, 왼쪽에서 0이 아닌 첫 번째 숫자부터 시작하여, 정확한 자릿수까지 사이의 모든 숫자를 이 대략적인 숫자의 유효 숫자라고 합니다.
예:
890314000은 8.90×10의 8승(반올림)으로 3개의 유효 숫자를 유지합니다.
839960000 유효 숫자 3개를 8.40×10의 8제곱(5개 항목)으로 예약합니다
0.00934593 유효 숫자 3개를 9.35×10의 -3제곱으로 예약합니다
대부분의 계산기와 컴퓨터 프로그램은 과학적 표기법으로 매우 크고 작은 결과를 표시합니다. 지수 위 첨자(예: 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 참조).
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); }
결과
<span class="pun">-</span><span class="lit">1.2345678E7</span>
<span class="lit">1.2345678E7</span>
<span class="lit">1.0E-4</span>
-<span class="lit">1.0E-4</span>
통일해야 하는 경우가 많습니다. 과학적 표기법 또는 모두 일반 계산으로 표시됩니다.
온라인 정보에 따르면 API 구현 방법으로는 NumberFormat, DecimalFormat, BigDecimal 세 가지가 주로 언급됩니다.
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; }
입력한 소수점 이하 자릿수가 설정된 최대 소수 자릿수보다 클 경우 반올림됩니다.
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
publicstaticString scientificNotation2String(String str){ String value =null; BigDecimal bd =newBigDecimal(str); value = bd.toPlainString(); return value; }
생성자 메서드가 많으므로 문자열 유형 값을 전달할 필요가 없습니다. BigDecimal의 toString 메소드와 toPlanString 메소드의 차이점:
string 표현을 반환합니다. 필수, 과학적 표기법 사용
위 내용은 Java 과학 표기법 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!