JavaRush /Java Blog /Random-KO /BigDecimal 숫자에 대해 조금 더 자세히 알아보기
grishin
레벨 27
Харьков

BigDecimal 숫자에 대해 조금 더 자세히 알아보기

Random-KO 그룹에 게시되었습니다
드디어 3개월간의 휴식기를 마치고 다시 강좌를 수강하게 되었습니다. 1월 초에 쉬었어요. 그런 다음 HTML/CSS/Javascript와 같은 다른 분야를 공부하기로 결정했습니다. 그 과정에서 기술(서블릿 및 JSP)을 배우기 시작했습니다. 그 당시에는 24레벨을 완료했고 내부 수업에 약간 정체되어 있었습니다. 아무것도 명확하지 않은 것이 아니라, 짧은 기간에 너무 많은 지식을 습득했기 때문에 얻은 ​​지식을 체계화해야 했다는 것뿐입니다. "유럽 전역의 질주" 모드에서. 그래서 이제 저는 Horstman의 첫 번째 볼륨을 주의 깊게 살펴보고 Java Core에 대한 지식을 통합하는 동시에 이전 레벨의 나머지 작업을 완료한 다음 레벨을 진행하기로 결정했습니다. 팩토리얼에 관한 레벨 15의 보너스 문제부터 시작했습니다. 이를 처리한 후 BigDecimal 클래스를 더 자세히 살펴보기로 결정했습니다. 인터넷에서 특별히 인기 있는 기사를 찾지 못했기 때문에 문서를 살펴보았 더니 문서의 첫 번째 단락에서 즉시 모든 것이 명확하지는 않다는 생각이 들었습니다. 나는 진실의 진상을 규명하기로 결심했고, 내 작업이 헛되지 않도록 모든 것을 기사 형식으로 포맷했고 지금은 의견 교환을 위해 커뮤니티에 게시하고 있는데 어쩌면 그렇게 될 수도 있습니다. 누군가에게 도움이 되십시오. 그래서 첫 문단을 가져와서 문장으로 나누었습니다. 그 안에는 5개의 문장만 있습니다. 3번과 4번 문장에 밑줄이 그어져 단락 끝으로 이동되었습니다(내가 이렇게 한 이유 - 계속 읽어보세요). 그리고 이렇게 변경된 순서에 따라 번역이 이루어졌습니다. 원본 첫 번째 단락
  1. 불변의 임의 정밀도 부호 있는 십진수입니다.
  2. BigDecimal은 임의의 정밀도 정수 비스케일 값과 32비트 정수 스케일로 구성됩니다.
  3. 0 또는 양수인 경우 스케일은 소수점 오른쪽의 자릿수입니다.
  4. 음수인 경우 숫자의 스케일링되지 않은 값에 스케일 부정의 거듭제곱에 10을 곱합니다.
  5. 따라서 BigDecimal이 나타내는 숫자의 값은 ( unscaledValue × 10 -scale )입니다.
문장 순서가 재배열된 원본
  1. 불변의 임의 정밀도 부호 있는 십진수입니다.
  2. BigDecimal은 임의의 정밀도 정수 비스케일 값과 32비트 정수 스케일로 구성됩니다.
  3. 따라서 BigDecimal이 나타내는 숫자의 값은 ( unscaledValue × 10 -scale )입니다.
  4. 0 또는 양수인 경우 스케일은 소수점 오른쪽의 자릿수입니다.
  5. 음수인 경우 숫자의 스케일링되지 않은 값에 스케일 부정의 거듭제곱에 10을 곱합니다.
확장된 번역(번역의 각 지점은 원본의 지점에 해당)
  1. 이는 임의 길이 34 의 부호가 2 인 불변의 분수 1 십진수입니다 .
  2. BigDecimal 숫자는 두 개의 매개변수로 지정됩니다. 그 중 첫 번째는 소위입니다. 크기 조정되지 않은 값은 길이가 무제한인 정수입니다. 이 매개변수만 알면 BigDecimal 숫자의 실제 값에 대해 아무 말도 할 수 없습니다. 이렇게 하려면 두 번째 매개변수인 scale이라는 32비트 정수를 알아야 합니다.
  3. 그런 다음 BigDecimal 숫자의 값은 다음 공식을 사용하여 계산할 수 있습니다: unscaledValue × 10 -scale
  4. BigDecimal이 0이거나 양수인 경우 소수점 이하 자릿수는 소수점 이하 자릿수입니다.
  5. BigDecimal이 음수이면 스케일이 적용되지 않은 값에 마이너스 기호가 있는 스케일과 동일한 거듭제곱으로 10을 곱합니다.
번역 노트
1. 분수. "임의의 정밀도"에는 무엇보다도 다음이 포함됩니다.
   이는 정확한 숫자이고 정확한 숫자에는 소수점이 있어야 합니다.
   즉, 분수입니다.
2. 즉 긍정적일 수도 있고 부정적일 수도 있습니다.
3. "임의의 정밀도"는 또한 임의의 길이를 의미하므로
   "임의의 자릿수."
4. 실제로 BigDecimal 숫자는 실수입니다. 하지만 설치 중
   다양한 설정을 통해 과학적 계산뿐만 아니라
   금융 분야에서도 마찬가지입니다.
따라서 밑줄 친 문장은 저에게 가장 혼란스러운 요소였습니다. 실제로는 그 문장을 텍스트에서 제거하겠습니다. 왜냐하면 실제로는 거의 같은 내용이고 게다가 문장 번호 5에서 말한 내용과 거의 동일하기 때문입니다. 저것들. 연속된 세 문장은 스케일링되지 않은 값에 마이너스 기호를 사용하여 스케일과 동일한 거듭제곱으로 10을 곱한 것만을 나타냅니다. 처음 읽을 때 혼란스럽습니다. 왜냐하면 문장 번호 3을 읽을 때 if가 있기 때문에 여기에 한 가지가 있고 다음 문장에는 다른 것이 있다는 것을 의미한다는 것을 이해하기 때문입니다. 하지만 아닙니다. 두 문장 모두 동일한 내용을 말하고 있지만 단어만 다릅니다. 글쎄요, 같은 내용에 대한 연속된 세 번째(문단의 마지막) 문장은 아마도 컨트롤 샷과 같을 것입니다. 마지막 문장의 unscaledValue × 10 -scale 공식이 큰 수의 정의를 최대한 명확하고 모호하지 않으며 포괄적으로 제공하기 때문에 텍스트가 왜 그렇게 혼란스러운 방식으로 컴파일되었는지는 확실하지 않습니다 .
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION