BigDecimal 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다.
[Android.Runtime.Register("java/math/BigDecimal", DoNotGenerateAcw=true)]
public class BigDecimal : Java.Lang.Number, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/math/BigDecimal", DoNotGenerateAcw=true)>]
type BigDecimal = class
inherit Number
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IComparable
- 상속
- 특성
- 구현
설명
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. A는 BigDecimal
임의의 전체 자릿수 정수 #unscaledValue() 크기 조정되지 않은 값 과 32비트 정 수 #scale() 배율로 구성됩니다. 0 또는 양수이면 소수점 오른쪽에 있는 자릿수입니다. 음수이면 숫자의 크기가 조정되지 않은 값에 10을 곱하여 소수 자릿수 부정의 힘을 곱합니다. 따라서 (unscaledValue × 10<sup>-scale</sup>)
이 값이 나타내는 숫자의 BigDecimal
값입니다.
이 클래스는 BigDecimal
산술, 크기 조정 조작, 반올림, 비교, 해시 및 형식 변환에 대한 작업을 제공합니다. 메서드는 #toString
의 정식 표현을 BigDecimal
제공합니다.
클래스는 BigDecimal
사용자가 반올림 동작을 완벽하게 제어할 수 있게 해줍니다. 반올림 모드를 지정하지 않고 정확한 결과를 나타낼 ArithmeticException
수 없는 경우 throw됩니다. 그렇지 않으면 작업에 적절한 MathContext
개체를 제공하여 선택한 정밀도 및 반올림 모드로 계산을 수행할 수 있습니다. 두 경우 모두 반올림 제어를 위해 8개의 <<em>반올림 모드/em>이 제공됩니다. 이 클래스의 정수 필드(예: #ROUND_HALF_UP
)를 사용하여 반올림 모드를 나타내는 것은 더 이상 사용되지 않습니다. 대신 ,(예: RoundingMode#HALF_UP
)의 RoundingMode
enum
열거형 값을 사용해야 합니다.
개체에 MathContext
정밀도 설정이 0인 경우(예 MathContext#UNLIMITED
:) 개체를 사용하지 않는 MathContext
산술 메서드와 마찬가지로 산술 연산이 정확합니다. 정확한 결과를 계산하는 데 있어 정밀도 설정이 0인 MathContext
개체의 반올림 모드 설정은 사용되지 않으므로 관련이 없습니다. 분할의 경우 정확한 몫은 무한히 긴 소수점 확장을 가질 수 있습니다. 예를 들어 1을 3으로 나눈 값입니다. 몫에 소수 자릿수가 지정되지 않은 확장이 있고 정확한 결과를 반환하도록 작업이 지정되면 throw ArithmeticException
됩니다. 그렇지 않으면 다른 작업에 대해 수행된 대로 나누기의 정확한 결과가 반환됩니다.
정밀도 설정이 0이 아닌 경우 산술 규칙은 BigDecimal
ANSI X3.274-1996 및 ANSI X3.274-1996/AM 1-2000(섹션 7.4)에 정의된 산술 연산의 선택된 모드와 광범위하게 호환됩니다. 이러한 표준과 BigDecimal
달리 여러 반올림 모드가 포함됩니다. 이러한 ANSI 표준과 BigDecimal
사양 간의 충돌은 찬성 BigDecimal
하여 해결됩니다.
동일한 숫자 값은 서로 다른 표현을 가질 수 있으므로(눈금이 다른) 산술 및 반올림 규칙은 결과 표현에 사용되는 숫자 결과와 소수 자릿수를 모두 지정해야 합니다.
동일한 숫자 값의 다른 표현을 동일한 코호트의 멤버라고 합니다. #compareTo(BigDecimal) 자연 순서 BigDecimal
는 동일한 코호트의 멤버를 서로 같음으로 간주합니다. 반면에 이 메서드를 #equals(Object) equals
사용하려면 숫자 값과 표현이 모두 동일해야 같아야 합니다. 메서드 #scale()
의 결과는 서로 다른 표현을 #unscaledValue()
사용하여 숫자와 같은 값에 대해 다릅니다.
일반적으로 반올림 모드 및 정밀도 설정은 정확한 결과에 반환된 자릿수보다 더 많은 숫자(나누기와 제곱근의 경우 무한히 많은 수)가 있을 때 작업이 제한된 수의 숫자로 결과를 반환하는 방법을 결정합니다.
먼저 반환할 총 자릿수는 '의 precision
설정에 의해 MathContext
지정됩니다. 그러면 결과의 전체 자릿수가 결정됩니다. 숫자 개수는 정확한 결과의 가장 왼쪽 0이 아닌 숫자에서 시작됩니다. 반올림 모드는 삭제된 후행 숫자가 반환된 결과에 미치는 영향을 결정합니다.
모든 산술 연산자의 경우 선택한 반올림 모드를 사용하여 정확한 중간 결과가 먼저 계산된 다음 전체 자릿수 설정(필요한 경우)으로 반올림된 것처럼 연산이 수행됩니다. 정확한 결과가 반환되지 않으면 정확한 결과의 일부 숫자 위치가 삭제됩니다. 반올림하면 반환된 결과의 크기가 증가하면 선행 "9" 숫자로 전파되는 캐리를 통해 새 숫자 위치를 만들 수 있습니다. 예를 들어 값을 999.9에서 3자리 숫자로 반올림하면 100번으로 표시되는 1,000과 숫자로 같아질 수 있습니다. 10<sup>1</sup>. 이러한 경우 새 "1"은 반환된 결과의 선행 숫자 위치입니다.
매개 변수가 있는 MathContext
메서드 및 생성자의 경우 결과가 유효하지 않지만 반올림 모드인 RoundingMode#UNNECESSARY UNNECESSARY
ArithmeticException
경우 throw됩니다.
논리적인 정확한 결과 외에도 각 산술 연산에는 결과를 나타내기 위한 기본 소수 자릿수가 있습니다. 각 작업에 대한 기본 크기 조정은 아래 표에 나와 있습니다.
<table class="striped" style="text-align:left">caption Preferred Scales for Results of Arithmetic Operations </caption><thead><tr><th scope="col">Operation</th th><scope="col">Preferred Scale of Result</th></tr></thead<>tbody><tr><th scope="row">Add</th><td>max(addend.scale(), augend.scale())</td<>tr><th scope="row">Subtract><</th><td>max(minuend.scale(), subtrahend.scale())</td><tr><th scope="row">Multiply</th><td>multiplier.scale() + multiplicand.scale()</td<>tr><th scope="row">Divide</th><td>dividend.scale() - divisor.scale()</td td<>tr><th scope="row">Square root</th><td radicand.scale>()/2</td<>/tbody></table>
이러한 눈금은 정확한 산술 결과를 반환하는 메서드에서 사용하는 배율입니다. 정확한 결과에 더 많은 숫자가 있을 수 있으므로 정확한 나누기는 더 큰 배율을 사용해야 할 수 있습니다. 예를 들어 1/32
는 0.03125
입니다.
반올림하기 전에 논리적인 정확한 중간 결과의 배율은 해당 작업의 기본 크기 조정입니다. 정확한 숫자 결과를 숫자로 precision
나타낼 수 없는 경우 반올림은 반환할 숫자 집합을 선택하고 결과의 배율을 중간 결과의 배율에서 실제로 반환된 숫자를 나타낼 precision
수 있는 최소 배율로 줄입니다. 정확한 결과를 최대 precision
자릿수로 나타낼 수 있는 경우 기본 설정 눈금에 가장 가까운 배율을 가진 결과의 표현이 반환됩니다. 특히, 정확히 나타낼 수 있는 몫은 후행 0을 제거하고 배율을 줄임으로써 숫자보다 precision
작은 숫자로 표현될 수 있습니다. 예를 들어 RoundingMode#FLOOR Floor Rounding 모드 <를 사용하여 세 자리로 반올림합니다. br>
19/100 = 0.19 // integer=19, scale=2
<br>
하지만<br>
21/110 = 0.190 // integer=190, scale=3
<br>
추가, 빼기 및 곱하기의 경우 배율 감소는 삭제되는 정확한 결과의 숫자 위치 수와 같습니다. 반올림으로 인해 캐리 전파가 새 상위 자릿수 위치를 만들면 새 숫자 위치가 만들어지지 않을 때보다 결과의 추가 숫자가 삭제됩니다.
다른 메서드에는 약간 다른 반올림 의미 체계가 있을 수 있습니다. 예를 들어 #pow(int, MathContext) 지정된 알고리즘을 사용하는 메서드의 pow
결과는 마지막 위치에서 두 개 이상의 단위인 #ulp () ulp의 반올림된 수학 결과와 때때로 다를 수 있습니다.
크기 조정/반올림 작업 및 소수점 동작 작업의 배율을 BigDecimal
조작하기 위해 두 가지 유형의 연산이 제공됩니다. 크기 조정/반올림 연산(#setScale setScale
및 #round round
)은 피연산자의 값과 거의(또는 정확히) 같지만 소수 자릿수 또는 정밀도가 지정된 값인 값을 반환 BigDecimal
합니다. 즉, 값에 대한 최소한의 효과로 저장된 숫자의 전체 자릿수를 늘리거나 줄입니다. 소수점 동작 연산(#movePointLeft movePointLeft
및 #movePointRight movePointRight
)은 지정된 방향으로 소수점을 지정된 거리로 이동하여 피연산자에서 만든 값을 반환 BigDecimal
합니다.
32비트 정수로 소수 자릿수의 값 집합은 크지만 경계가 있습니다. 결과의 크기가 오버플로 또는 언더플로로 32비트 정수의 범위를 초과하면 작업이 throw될 ArithmeticException
수 있습니다.
간결하고 명확하게 하기 위해 의사 코드는 메서드에 대한 설명 BigDecimal
전체에서 사용됩니다. 의사 코드 식 (i + j)
은 "해당 값이 해당 BigDecimal
값에 추가된 BigDecimal
i
값"에 BigDecimal
j
대한 약식입니다. 의사 코드 식 (i == j)
은 "와 동일한 값을 BigDecimal
j
나타내는 경우에만 BigDecimal
i
"true
에 대한 약식입니다. 다른 의사 코드 식도 비슷하게 해석됩니다. 대괄호는 값을 정의하는 특정 BigInteger
및 배율 쌍을 BigDecimal
나타내는 데 사용됩니다. 예를 들어 [19, 2]는 BigDecimal
소수 자릿수가 2인 0.19와 같은 숫자입니다.
이 클래스의 모든 메서드 및 생성자는 입력 매개 변수에 대한 개체 참조를 null
전달할 때 throw NullPointerException
됩니다.
1.1에 추가되었습니다.
에 대한 java.math.BigDecimal
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
BigDecimal(BigInteger) |
를 |
BigDecimal(BigInteger, Int32) |
크기가 조정 |
BigDecimal(BigInteger, Int32, MathContext) |
크기가 |
BigDecimal(BigInteger, MathContext) |
컨텍스트 설정에 |
BigDecimal(Char[]) |
문자 배열 표현 |
BigDecimal(Char[], Int32, Int32) |
하위 배열을 지정하도록 허용하면서 생성자와 동일한 문자 시퀀스를 허용하는 문자 |
BigDecimal(Char[], Int32, Int32, MathContext) |
하위 배열을 |
BigDecimal(Char[], MathContext) |
문자 배열 표현을 생성자와 동일한 문자 |
BigDecimal(Double) |
|
BigDecimal(Double, MathContext) |
컨텍스트 설정에 |
BigDecimal(Int32) |
를 |
BigDecimal(Int32, MathContext) |
컨텍스트 설정에 |
BigDecimal(Int64) |
를 |
BigDecimal(Int64, MathContext) |
컨텍스트 설정에 |
BigDecimal(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
BigDecimal(String) |
문자열 표현 |
BigDecimal(String, MathContext) |
컨텍스트 설정에 따라 반올림을 사용하여 생성자와 동일한 문자열을 허용하는 문자열 |
필드
RoundCeiling |
반올림 모드를 양수 무한대로 반올림합니다. |
RoundDown |
반올림 모드가 0으로 반올림됩니다. |
RoundFloor |
음의 무한대를 향해 반올림 모드를 둥글게 합니다. |
RoundHalfDown |
두 인접 항목이 모두 등가되지 않는 한 "가장 가까운 이웃"쪽으로 반올림 모드를 반올림합니다. 이 경우 반올림합니다. |
RoundHalfEven |
두 이웃이 등거리가 아니면 "가장 가까운 이웃"쪽으로 반올림 모드를 반올림하여 짝수 이웃을 향해 반올림합니다. |
RoundHalfUp |
두 인접 항목이 모두 등가되지 않는 한 반올림 모드가 "가장 가까운 이웃"쪽으로 반올림됩니다. 이 경우 반올림합니다. |
RoundUnnecessary |
요청된 작업에 정확한 결과가 있음을 어설션하는 반올림 모드이므로 반올림이 필요하지 않습니다. |
RoundUp |
반올림 모드를 0에서 둥글게 합니다. |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. |
One |
배율 0인 값 1입니다. |
PeerReference |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
Ten |
크기가 0인 값 10입니다. |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
Zero |
크기가 0인 값 0입니다. |
메서드
Abs() |
|
Abs(MathContext) |
컨텍스트 설정에 |
Add(BigDecimal) |
값이 |
Add(BigDecimal, MathContext) |
컨텍스트 설정에 |
ByteValue() |
지정된 숫자의 값을 .로 |
ByteValueExact() |
손실된 정보를 검사하여 이를 |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
CompareTo(BigDecimal) |
이 |
Dispose() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
Divide(BigDecimal) |
|
Divide(BigDecimal, Int32, RoundingMode) |
값이 |
Divide(BigDecimal, Int32, RoundOptions) |
값이 |
Divide(BigDecimal, MathContext) |
컨텍스트 설정에 |
Divide(BigDecimal, RoundingMode) |
값이 |
Divide(BigDecimal, RoundOptions) |
값이 |
DivideAndRemainder(BigDecimal) |
두 피연산자의 결과 |
DivideAndRemainder(BigDecimal, MathContext) |
컨텍스트 설정에 따라 반올림을 사용하여 계산된 두 피연산자의 결과를 |
DivideToIntegralValue(BigDecimal) |
|
DivideToIntegralValue(BigDecimal, MathContext) |
값이 |
DoubleValue() |
이 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
FloatValue() |
이 |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
IntValue() |
이 |
IntValueExact() |
손실된 정보를 검사하여 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
LongValue() |
이 |
LongValueExact() |
손실된 정보를 검사하여 이를 |
Max(BigDecimal) |
이 |
Min(BigDecimal) |
최소 |
MovePointLeft(Int32) |
|
MovePointRight(Int32) |
|
Multiply(BigDecimal) |
값이 |
Multiply(BigDecimal, MathContext) |
컨텍스트 설정에 |
Negate() |
값이 |
Negate(MathContext) |
컨텍스트 설정에 |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Plus() |
값이 |
Plus(MathContext) |
컨텍스트 설정에 |
Pow(Int32) |
값이 |
Pow(Int32, MathContext) |
값이 .인 값을 |
Precision() |
이 |
Remainder(BigDecimal) |
값이 .인 값을 |
Remainder(BigDecimal, MathContext) |
컨텍스트 설정에 |
Round(MathContext) |
설정에 |
Scale() |
이 |
ScaleByPowerOfTen(Int32) |
숫자 값이 ( |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetScale(Int32) |
|
SetScale(Int32, RoundingMode) |
|
SetScale(Int32, RoundOptions) |
|
ShortValue() |
지정된 숫자의 값을 .로 |
ShortValueExact() |
손실된 정보를 검사하여 이를 |
Signum() |
이 |
Sqrt(MathContext) |
컨텍스트 설정에 따라 반올림을 사용하여 제곱근에 |
StripTrailingZeros() |
|
Subtract(BigDecimal) |
값이 |
Subtract(BigDecimal, MathContext) |
컨텍스트 설정에 |
ToArray<T>() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
ToBigInteger() |
이 |
ToBigIntegerExact() |
손실된 정보를 검사하여 이를 |
ToEngineeringString() |
지수가 필요한 경우 엔지니어링 표기법을 사용하여 이 |
ToPlainString() |
지수 필드가 없는 문자열 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
Ulp() |
이 값의 마지막 위치에 있는 단위인 ulp의 |
UnregisterFromRuntime() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
UnscaledValue() |
|
ValueOf(Double) |
메서드에서 |
ValueOf(Int64) |
|
ValueOf(Int64, Int32) |
크기가 조정 |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IComparable.CompareTo(Object) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. |
IJavaPeerable.Disposed() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. |
GetJniTypeName(IJavaPeerable) |
변경할 수 없는 임의 정밀도 부호 있는 10진수입니다. |