public class BigDecimal extends Number implements Comparable<BigDecimal>
BigDecimalã¯ãä»»æç²ŸåºŠã®ã¹ã±ãŒã«ãªãã®æŽæ°å€ãšã32ãããæŽæ°ã®ã¹ã±ãŒã«ã§æ§æãããŸãã 0ãŸãã¯æ£ã®å Žåãã¹ã±ãŒã«ã¯å°æ°ç¹ä»¥äžã®æ¡æ°ã§ãã è² ã®å Žåãã¹ã±ãŒã«ãªãã®æ°å€ã«ãã¹ã±ãŒã«ã®æ£è² ãéã«ããå€ãææ°ãšãã10ã®çޝä¹ãä¹ç®ããŸãã ã€ãŸããBigDecimalã§è¡šãããæ°å€ã¯(unscaledValueÃ10-scale)ã§ãã
BigDecimalã¯ã©ã¹ã¯ãç®è¡ãã¹ã±ãŒã«æäœãäžžããæ¯èŒãããã·ã³ã°ãããã³æžåŒå€æã®æŒç®ãæäŸããŸãã toString()ã¡ãœããã¯BigDecimalã®æ£èŠè¡šçŸãæäŸããŸãã
BigDecimalã¯ã©ã¹ã¯ããŠãŒã¶ãŒãäžžãåäœãå®å
šã«å¶åŸ¡ã§ããããã«ããŸãã äžžãã¢ãŒããæå®ããããæ£ç¢ºãªçµæã衚çŸã§ããªãå ŽåãäŸå€ãã¹ããŒãããŸããããã§ãªãå ŽåãæŒç®ã«é©åãªMathContextãªããžã§ã¯ããæå®ããããšã§ãéžæããã粟床ãšäžžãã¢ãŒãã§èšç®ãå®è¡ãããŸãã ã©ã¡ãã®å Žåããäžžãã®å¶åŸ¡ã«8ã€ã®äžžãã¢ãŒããæäŸãããŸãã ãã®ã¯ã©ã¹ã®æŽæ°ãã£ãŒã«ã(ROUND_HALF_UPãªã©)ã䜿çšããŠäžžãã¢ãŒãã衚ãããšã¯ã»ãšãã©è¡ãããŸãããRoundingMode enum (RoundingMode.HALF_UPãªã©)ã®åæå€ã䜿çšããŠãã ããã
MathContextãªããžã§ã¯ãã«ç²ŸåºŠèšå®0 (ããšãã°ã MathContext.UNLIMITED)ãæå®ãããŠããå Žåããã®ç®è¡ã¡ãœããã¯MathContextãªããžã§ã¯ãã䜿çšããªããããç®è¡æŒç®ã¯æ£ç¢ºã§ãã ããã¯ããªãªãŒã¹5ããåã§ãµããŒããããŠããå¯äžã®åäœã§ãã çµæã®èšç®ãæ£ç¢ºã§ããããã粟床0ã®èšå®ãæã€MathContextãªããžã§ã¯ãã®äžžãã¢ãŒãèšå®ã¯äœ¿çšããããç¡é¢ä¿ã§ãã é€ç®ã®å Žåãæ£ç¢ºãªåã¯å°æ°ç¹ä»¥äžãç¡éã®é·ããæã€å¯èœæ§ããããŸã(ããšãã°ã 1÷3)ã åã®å°æ°ç¹ä»¥äžãç¡éã§ãæŒç®ãæ£ç¢ºãªçµæãè¿ãããã«æå®ãããŠããå ŽåãArithmeticExceptionãã¹ããŒãããŸãã ããã§ãªãå Žåãã»ãã®æŒç®ãšåæ§ã«ãé€ç®ã®æ£ç¢ºãªçµæãè¿ãããŸãã
粟床èšå®ã0ã§ãªãå ŽåãBigDecimalã®ç®è¡ã«ãŒã«ã¯ãANSI X3.274-1996ããã³ANSI X3.274-1996/AM 1-2000 (ã»ã¯ã·ã§ã³7.4)ã§å®çŸ©ãããŠãããéžæãããæŒç®ã¢ãŒããšåºç¯ãªäºææ§ããããŸãã ãããã®èŠæ Œãšã¯ç°ãªããBigDecimalã«ã¯ããªãªãŒã¹5ããåã®BigDecimalã®é€ç®ã§å¿
é ã ã£ãå€ãã®äžžãã¢ãŒãããããŸãã ãããã®ANSIèŠæ ŒãšBigDecimal仿§ã®ç«¶åã¯ãBigDecimalãåªå
ããæ¹æ³ã§è§£æ±ºãããŸãã
åãæ°å€ã§ã衚çŸãç°ãªã(ã¹ã±ãŒã«ãç°ãªã)å¯èœæ§ããããããç®è¡ããã³äžžãã®ã«ãŒã«ã¯ãæ°å€çãªçµæãšãçµæã®è¡šçŸã«äœ¿çšããã¹ã±ãŒã«ã®äž¡æ¹ãæå®ããå¿ èŠããããŸãã
äžè¬ã«ãæ£ç¢ºãªçµæã«ãè¿ãããæ¡æ°ãããå€ãã®æ¡(é€ç®ã®å Žåã¯ããããç¡é倧)ãããå Žåãäžžãã¢ãŒããšç²ŸåºŠèšå®ã«ãããæŒç®ãè¿ãçµæã®æ¡æ°ã決ãŸããŸãã ãŸããè¿ãããæ¡ã®åèšæ°ã¯MathContextã®precisionèšå®ã§æå®ãããŸããããã«ãããçµæã®ç²ŸåºŠã決å®ãããŸãã æ¡æ°ã®ã«ãŠã³ãã¯ãæ£ç¢ºãªçµæã®ãã£ãšãå·Šã®0ã§ãªãæ¡ããå§ãŸããŸãã äžžãã¢ãŒãã§ã¯ãç Žæ£ãããæ¡ãè¿ãããçµæã«ã©ã®ããã«åœ±é¿ããããæ±ºå®ãããŸãã
ãã¹ãŠã®ç®è¡æŒç®åã§ã¯ãæŒç®ã¯ããŸãæ£ç¢ºãªäžéçµæãèšç®ããæ¬¡ã«(å¿ èŠãªå Žåã¯)éžæãããäžžãã¢ãŒãã䜿çšããŠç²ŸåºŠèšå®ã§æå®ãããæ¡æ°ã«äžžãããšããæé ã§å®è¡ãããŸãã æ£ç¢ºãªçµæãè¿ãããªãå Žåãæ£ç¢ºãªçµæã®ããã€ãã®æ¡äœçœ®ãç Žæ£ãããŸãã äžžãã«ãããè¿ãããçµæã®çµ¶å¯Ÿå€ãå¢ããå Žåãå é ã®ã9ãã®æ¡ã«å¯ŸããŠæ¡ã®ç¹°äžããå®è¡ããããšã§æ°ããæ¡äœçœ®ãäœæã§ããŸãã ããšãã°ã999.9ãšããå€ãåãäžããŠ3æ¡ã«äžžãããšã1000ãšçãããªããããã¯100Ã101ãšããŠè¡šçŸãããŸãã ãã®ãããªå Žåãæ°ããã1ããè¿ãããçµæã®å é ã®æ¡äœçœ®ã«ãªããŸãã
è«ççã«æ£ç¢ºãªçµæã®ã»ããåç®è¡æŒç®ã«ã¯çµæã衚çŸããããã«åªå ãããã¹ã±ãŒã«ããããŸãã åæŒç®ã®åªå ã¹ã±ãŒã«ããæ¬¡ã®è¡šã«ç€ºããŸãã
| æŒç® | åªå ãããçµæã®ã¹ã±ãŒã« |
|---|---|
| å ç® | max(addend.scale(), augend.scale()) |
| æžç® | max(minuend.scale(), subtrahend.scale()) |
| ä¹ç® | multiplier.scale() + multiplicand.scale() |
| é€ç® | dividend.scale() - divisor.scale() |
1/32ã¯0.03125ã§ãã
äžžãã®åã¯ãè«ççã«æ£ç¢ºãªäžéçµæã®ã¹ã±ãŒã«ããã®æŒç®ã®åªå
ã¹ã±ãŒã«ã§ãã æ£ç¢ºãªæ°å€çµæãprecisionæ¡ã§è¡šçŸã§ããªãå Žåãè¿ãæ¡ã»ãããäžžãã«ããéžæããããã®çµæã®ã¹ã±ãŒã«ã¯äžéçµæã®ã¹ã±ãŒã«ãããå®éã«è¿ãããprecisionæ¡ã衚ãããšã®ã§ããæå°ã®ã¹ã±ãŒã«ã«çž®å°ãããŸãã æ£ç¢ºãªçµæãprecisionæ¡ã§è¡šçŸã§ããå Žåããã®çµæã®è¡šçŸã¯åªå
ã¹ã±ãŒã«ã«ãã£ãšãè¿ãã¹ã±ãŒã«ã§è¿ãããŸãã ç¹ã«ãæ£ç¢ºã«è¡šçŸå¯èœãªåã¯ãæ«å°Ÿã®0ãåé€ããã¹ã±ãŒã«ãå°ããããããšã§ãprecisionæ¡ãããå°ãªãæ¡ã§è¡šçŸã§ããŸãã ããšãã°ãflooräžžãã¢ãŒãã䜿çšãã3æ¡ãžã®äžžãã§ã¯ã次ã®ããã«ãªããŸãã
19/100 = 0.19 // integer=19, scale=2
ãã ããæ¬¡ãæãç«ã¡ãŸãã
21/110 = 0.190 // integer=190, scale=3
å ç®ãæžç®ãããã³ä¹ç®ã§ã¯ãã¹ã±ãŒã«ã®çž®å°ã¯ãæ£ç¢ºãªçµæã®ç Žæ£ãããæ¡äœçœ®ã®æ°ãšçãããªãç¹ã«æ³šæããŠãã ããã äžžãã«ããæ¡ã®ç¹°äžãã§æ°ããäžäœã®æ¡äœçœ®ãäœæãããå Žåãæ°ããæ¡äœçœ®ãäœæãããªããšãçµæã®è¿œå ãããæ¡ã¯ç Žæ£ãããŸãã
ã»ãã®ã¡ãœããã¯ãå°ãç°ãªãäžžãã»ãã³ãã£ãã¯ã¹ãæã€å¯èœæ§ããããŸãã ããšãã°ãæå®ãããã¢ã«ãŽãªãºã ã䜿çšããpowã¡ãœããã®çµæã¯ãäžžããããæ°åŠççµæãšãæçµæ¡ã®1åäœä»¥äžãã€ãŸã1 ulp以äžç°ãªãå ŽåããããŸãã
BigDecimalã®ã¹ã±ãŒã«æäœã«ã¯ãã¹ã±ãŒãªã³ã°/äžžãæŒç®ãšå°æ°ç¹ç§»åæŒç®ã®2çš®é¡ããããŸãã ã¹ã±ãŒãªã³ã°/äžžãæŒç®(setScaleãšround)ã¯ãå€ããªãã©ã³ãã®å€ãšã»ãŒ(ãŸãã¯æ£ç¢ºã«)çãããã¹ã±ãŒã«ãŸãã¯ç²ŸåºŠã¯æå®ãããå€ã§ããBigDecimalãè¿ããŸãããã®ã¹ã±ãŒã«ãŸãã¯ç²ŸåºŠã«ãããå€ã«å¯ŸããŠæå°éã®åœ±é¿ã§ãæ ŒçŽãããæ°å€ã®ç²ŸåºŠãäžäžããŸãã å°æ°ç¹ç§»åæŒç®(movePointLeftãšmovePointRight)ã¯ãæå®ããæ¹åã«æå®ããæ¡ã ãå°æ°ç¹ãç§»åããããšã«ãããªãã©ã³ãããäœæãããBigDecimalãè¿ããŸãã
説æãããããããç°¡æœã«ããããã«ãBigDecimalã¡ãœããã®èª¬æã§ã¯å
šäœãéããŠæ¬äŒŒã³ãŒãã䜿çšããŸãã æ¬äŒŒã³ãŒãåŒ(i+j)ã¯ããå€ãBigDecimal iã®å€ãšBigDecimal jã®å€ã®åã§ããBigDecimalãã瀺ããŸãã æ¬äŒŒã³ãŒãåŒ(i == j)ã¯ããBigDecimal iãBigDecimal jãšåãå€ã衚ãå Žåã«ã ãtrueã§ããããšãã瀺ããŸãã ã»ãã®æ¬äŒŒã³ãŒãåŒãåãããã«è§£éãããŸãã è§ã«ãã³ã¯ãBigDecimalå€ãå®çŸ©ããç¹å¥ãªBigIntegerãšã¹ã±ãŒã«ã®ãã¢ã衚ãããã«äœ¿çšãããŸããããšãã°ã[19, 2]ã¯ãã¹ã±ãŒã«2ãæã€0.19ãšæ°å€çã«çããBigDecimalã§ãã
ããŒã: BigDecimalãªããžã§ã¯ããSortedMapã®ããŒãŸãã¯SortedSetã®èŠçŽ ãšããŠäœ¿çšããå Žåã¯ã泚æããŠãã ãããBigDecimalã®èªç¶é åºä»ããequalsãšççŸããããã§ãã 詳现ã«ã€ããŠã¯ãComparableãSortedMapãŸãã¯SortedSetãåç
§ããŠãã ããã
ãã®ã¯ã©ã¹ã®ã¡ãœããããã³ã³ã³ã¹ãã©ã¯ã¿ã¯ãã¹ãŠãå
¥åãã©ã¡ãŒã¿ã«å¯ŸããŠnullãªããžã§ã¯ãåç
§ãæž¡ããããšNullPointerExceptionãã¹ããŒããŸãã
BigInteger, MathContext, RoundingMode, SortedMap, SortedSet, çŽååããã圢åŒ| 修食åãšå | ãã£ãŒã«ã | 説æ |
|---|---|---|
static BigDecimal |
ONE |
ã¹ã±ãŒã«0ã®å€1ã§ãã
|
static int |
ROUND_CEILING |
æ£ã®ç¡é倧ã«è¿ã¥ãããã«äžžããã¢ãŒãã§ãã
|
static int |
ROUND_DOWN |
0ã«è¿ã¥ãããã«äžžããã¢ãŒãã§ãã
|
static int |
ROUND_FLOOR |
è² ã®ç¡é倧ã«è¿ã¥ãããã«äžžããã¢ãŒãã§ãã
|
static int |
ROUND_HALF_DOWN |
ããã£ãšãè¿ãæ°åãã«äžžããäžžãã¢ãŒãã§ã(äž¡é£ãã®æ°åãçè·é¢ã®å Žåã¯åãæšãŠãŸã)ã
|
static int |
ROUND_HALF_EVEN |
ããã£ãšãè¿ãæ°åãã«äžžããäžžãã¢ãŒãã§ã(ãã ããäž¡é£ãã®æ°åãçè·é¢ã®å Žåã¯å¶æ°åŽã«äžžããŸã)ã
|
static int |
ROUND_HALF_UP |
ããã£ãšãè¿ãæ°åãã«äžžããäžžãã¢ãŒãã§ã(ãã ããäž¡é£ãã®æ°åãçè·é¢ã®å Žåã¯åãäžããŸã)ã
|
static int |
ROUND_UNNECESSARY |
èŠæ±ãããæŒç®ã®çµæãæ£ç¢ºã§ãããäžžããå¿
èŠã§ãªãããšã衚ãäžžãã¢ãŒãã§ãã
|
static int |
ROUND_UP |
0ããé¢ããããã«äžžããã¢ãŒãã§ãã
|
static BigDecimal |
TEN |
ã¹ã±ãŒã«0ã®å€10ã§ãã
|
static BigDecimal |
ZERO |
ã¹ã±ãŒã«0ã®å€0ã§ãã
|
| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
BigDecimal(BigInteger val) |
BigIntegerãBigDecimalã«å€æããŸãã |
BigDecimal(BigInteger unscaledVal, int scale) |
BigIntegerã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã |
BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠã
BigIntegerã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã |
BigDecimal(BigInteger val, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠã
BigIntegerãBigDecimalã«å€æããŸãã |
BigDecimal(char[] in) |
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã |
BigDecimal(char[] in, int offset, int len) |
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããéšåé
åã®æå®ãå¯èœã«ããŸãã |
BigDecimal(char[] in, int offset, int len, MathContext mc) |
éšåé
åã®æå®ãå¯èœã«ããã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšãã€ã€ã
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããŠãåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã |
BigDecimal(char[] in, MathContext mc) |
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã |
BigDecimal(double val) |
doubleãdoubleã®ãã€ããªæµ®åå°æ°ç¹å€ã®æ£ç¢ºãª10鲿°è¡šçŸã§ããBigDecimalã«å€æããŸãã |
BigDecimal(double val, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠã
doubleãBigDecimalã«å€æããŸãã |
BigDecimal(int val) |
intãBigDecimalã«å€æããŸãã |
BigDecimal(int val, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠã
intãBigDecimalã«å€æããŸãã |
BigDecimal(long val) |
longãBigDecimalã«å€æããŸãã |
BigDecimal(long val, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠã
longãBigDecimalã«å€æããŸãã |
BigDecimal(String val) |
BigDecimalã®æåå衚çŸãBigDecimalã«å€æããŸãã |
BigDecimal(String val, MathContext mc) |
BigDecimalã®æåå衚çŸãBigDecimalã«å€æããã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãåãæååãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã |
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
BigDecimal |
abs() |
å€ããã®
BigDecimalã®çµ¶å¯Ÿå€ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
abs(MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ããã®
BigDecimalã®çµ¶å¯Ÿå€ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
add(BigDecimal augend) |
å€ã
(this+augend)ã§ã¹ã±ãŒã«ãmax(this.scale(), augend.scale())ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
add(BigDecimal augend, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(this+augend)ã§ããBigDecimalãè¿ããŸãã |
byte |
byteValueExact() |
ãã®
BigDecimalãbyteã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã |
int |
compareTo(BigDecimal val) |
ãã®
BigDecimalãæå®ãããBigDecimalãšæ¯èŒããŸãã |
BigDecimal |
divide(BigDecimal divisor) |
å€ã
(this /divisor)ã§åªå
ã¹ã±ãŒã«ã(this.scale() - divisor.scale())ã§ããBigDecimalãè¿ããŸãã(å°æ°ç¹ä»¥äžãç¡éãšãªããã)æ£ç¢ºãªåã衚çŸã§ããªãå ŽåãArithmeticExceptionãã¹ããŒãããŸãã |
BigDecimal |
divide(BigDecimal divisor, int roundingMode) |
å€ã
(this /divisor)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
divide(BigDecimal divisor, int scale, int roundingMode) |
å€ã
(this /divisor)ã§ãã¹ã±ãŒã«ãæå®ããããã®ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
divide(BigDecimal divisor, int scale, RoundingMode roundingMode) |
å€ã
(this /divisor)ã§ãã¹ã±ãŒã«ãæå®ããããã®ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
divide(BigDecimal divisor, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(this /divisor)ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
divide(BigDecimal divisor, RoundingMode roundingMode) |
å€ã
(this /divisor)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã |
BigDecimal[] |
divideAndRemainder(BigDecimal divisor) |
divideToIntegralValueã®çµæãšããã«ç¶ã2ã€ã®ãªãã©ã³ãã®remainderã®çµæãå«ãã2èŠçŽ ã®BigDecimalé
åãè¿ããŸãã |
BigDecimal[] |
divideAndRemainder(BigDecimal divisor, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠèšç®ããã
divideToIntegralValueã®çµæãšã2ã€ã®ãªãã©ã³ãã®remainderã®çµæãå«ãã2èŠçŽ ã®BigDecimalé
åãè¿ããŸãã |
BigDecimal |
divideToIntegralValue(BigDecimal divisor) |
å€ãäžžããããå
(this /divisor)ã®æŽæ°éšã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
divideToIntegralValue(BigDecimal divisor, MathContext mc) |
å€ã
(this /divisor)ã®æŽæ°éšã§ããBigDecimalãè¿ããŸãã |
double |
doubleValue() |
ãã®
BigDecimalãdoubleã«å€æããŸãã |
boolean |
equals(Object x) |
ãã®
BigDecimalãæå®ãããObjectãšåããã©ããæ¯èŒããŸãã |
float |
floatValue() |
ãã®
BigDecimalãfloatã«å€æããŸãã |
int |
hashCode() |
ãã®
BigDecimalã®ããã·ã¥ã»ã³ãŒããè¿ããŸãã |
int |
intValue() |
ãã®
BigDecimalãintã«å€æããŸãã |
int |
intValueExact() |
ãã®
BigDecimalãintã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã |
long |
longValue() |
ãã®
BigDecimalãlongã«å€æããŸãã |
long |
longValueExact() |
ãã®
BigDecimalãlongã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã |
BigDecimal |
max(BigDecimal val) |
ãã®
BigDecimalãšvalã®æå€§å€ãè¿ããŸãã |
BigDecimal |
min(BigDecimal val) |
ãã®
BigDecimalãšvalã®æå°å€ãè¿ããŸãã |
BigDecimal |
movePointLeft(int n) |
å°æ°ç¹ã
næ¡å·Šãžç§»åããŠããã«çããBigDecimalãè¿ããŸãã |
BigDecimal |
movePointRight(int n) |
å°æ°ç¹ã
næ¡å³ãžç§»åããŠããã«çããBigDecimalãè¿ããŸãã |
BigDecimal |
multiply(BigDecimal multiplicand) |
å€ã(thisÃmultiplicand)ã§ã¹ã±ãŒã«ã
(this.scale()+multiplicand.scale())ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
multiply(BigDecimal multiplicand, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã(thisÃmultiplicand)ã§ãã
BigDecimalãè¿ããŸãã |
BigDecimal |
negate() |
å€ã
(-this)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
negate(MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(-this)ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
plus() |
å€ã
(+this)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
plus(MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(+this)ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
pow(int n) |
å€ã(thisn)ã§ãã
BigDecimalãè¿ããŸãã环ä¹ã¯ã粟床ã®å¶éãªãã§æ£ç¢ºã«èšç®ãããŸãã |
BigDecimal |
pow(int n, MathContext mc) |
å€ã(thisn)ã§ãã
BigDecimalãè¿ããŸãã |
int |
precision() |
ãã®
BigDecimalã®ç²ŸåºŠãè¿ããŸãã |
BigDecimal |
remainder(BigDecimal divisor) |
å€ã
(this % divisor)ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
remainder(BigDecimal divisor, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(this % divisor)ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
round(MathContext mc) |
MathContextèšå®ã«åŸã£ãŠäžžããããBigDecimalãè¿ããŸãã |
int |
scale() |
ãã®
BigDecimalã®ã¹ã±ãŒã«ãè¿ããŸãã |
BigDecimal |
scaleByPowerOfTen(int n) |
æ°å€ã(
this * 10n)ã«çããBigDecimalãè¿ããŸãã |
BigDecimal |
setScale(int newScale) |
ã¹ã±ãŒã«ãæå®ãããå€ã§ãããå€ããã®
BigDecimalãšåãæ°å€ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
setScale(int newScale, int roundingMode) |
ã¹ã±ãŒã«ãæå®ãããå€ã§ããããã€ã¹ã±ãŒã«ãªãã®å€ãããã®
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ã®ç©ãŸãã¯åã«ããæ±ºå®ãããBigDecimalãè¿ããŸãã |
BigDecimal |
setScale(int newScale, RoundingMode roundingMode) |
ã¹ã±ãŒã«ãæå®ãããå€ã§ããããã€ã¹ã±ãŒã«ãªãã®å€ãããã®
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ã®ç©ãŸãã¯åã«ããæ±ºå®ãããBigDecimalãè¿ããŸãã |
short |
shortValueExact() |
ãã®
BigDecimalãshortã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã |
int |
signum() |
ãã®
BigDecimalã®ç¬Šå·èŠçŽ ãè¿ããŸãã |
BigDecimal |
stripTrailingZeros() |
æ°å€ã¯ããã«çããããæ«å°Ÿã®0ã衚çŸããåé€ããã
BigDecimalãè¿ããŸãã |
BigDecimal |
subtract(BigDecimal subtrahend) |
å€ã
(this - subtrahend)ã§ã¹ã±ãŒã«ãmax(this.scale(), subtrahend.scale())ã§ããBigDecimalãè¿ããŸãã |
BigDecimal |
subtract(BigDecimal subtrahend, MathContext mc) |
ã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãå€ã
(this - subtrahend)ã§ããBigDecimalãè¿ããŸãã |
BigInteger |
toBigInteger() |
ãã®
BigDecimalãBigIntegerã«å€æããŸãã |
BigInteger |
toBigIntegerExact() |
ãã®
BigDecimalãBigIntegerã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã |
String |
toEngineeringString() |
ææ°ãå¿
èŠãªå Žåãæè¡è¡šèšæ³ã§ããã®
BigDecimalã®æåå衚çŸãè¿ããŸãã |
String |
toPlainString() |
ææ°ãã£ãŒã«ããªãã§ããã®
BigDecimalã®æåå衚çŸãè¿ããŸãã |
String |
toString() |
ææ°ãå¿
èŠãªå Žåãç§åŠè¡šèšæ³ã§ããã®
BigDecimalã®æåå衚çŸãè¿ããŸãã |
BigDecimal |
ulp() |
ãã®
BigDecimalã®ulp (æçµæ¡åäœ)ã®ãµã€ãºãè¿ããŸãã |
BigInteger |
unscaledValue() |
å€ããã®
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ã§ããBigIntegerãè¿ããŸãã |
static BigDecimal |
valueOf(double val) |
Double.toString(double)ã¡ãœããã§æäŸãããdoubleã®æ£èŠã®æåå衚çŸã䜿çšããŠãdoubleãBigDecimalã«å€æããŸãã |
static BigDecimal |
valueOf(long val) |
longå€ãã¹ã±ãŒã«ã0ã®BigDecimalã«å€æããŸãã |
static BigDecimal |
valueOf(long unscaledVal, int scale) |
longã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã |
byteValue, shortValuepublic static final BigDecimal ZERO
public static final BigDecimal ONE
public static final BigDecimal TEN
public static final int ROUND_UP
public static final int ROUND_DOWN
public static final int ROUND_CEILING
BigDecimalãæ£ã®å Žåã¯ROUND_UPã®ããã«åäœããè² ã®å Žåã¯ROUND_DOWNã®ããã«åäœããŸãã ãã®äžžãã¢ãŒãã¯ãèšç®ãããå€ãæžãããŸããã public static final int ROUND_FLOOR
BigDecimalãæ£ã®å Žåã¯ROUND_DOWNã®ããã«åäœããè² ã®å Žåã¯ROUND_UPã®ããã«åäœããŸãã ãã®äžžãã¢ãŒãã¯ãèšç®ãããå€ãå¢ãããŸããã public static final int ROUND_HALF_UP
ROUND_UPã®ããã«ããã以å€ã®å Žåã¯ROUND_DOWNã®ããã«åäœããŸãã ããã¯æã
ã®å€§åãå°åŠæ ¡ã§ç¿ã£ãäžžãã¢ãŒãã®ããšã§ãã public static final int ROUND_HALF_DOWN
ROUND_UPã®ããã«ããã以å€ã®å Žåã¯ROUND_DOWNã®ããã«åäœããŸãã public static final int ROUND_HALF_EVEN
ROUND_HALF_UPã®ããã«ãå¶æ°ã®å Žåã¯ROUND_HALF_DOWNã®ããã«åäœããŸãã ãã®äžžãã¢ãŒãã¯ãé£ç¶ããèšç®ã§ç¹°è¿ãé©çšãããå Žåã«çޝç©ãšã©ãŒãæå°éã«ããŸãã public static final int ROUND_UNNECESSARY
ArithmeticExceptionãã¹ããŒãããŸãã public BigDecimal(char[] in,
int offset,
int len)
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããéšåé
åã®æå®ãå¯èœã«ããŸãã
æåã·ãŒã±ã³ã¹ãæåé
åå
ã§ãã§ã«äœ¿çšå¯èœãªå Žåãcharé
åãæååã«å€æããBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšãããããããã®ã³ã³ã¹ãã©ã¯ã¿ã䜿ã£ãæ¹ãé«éã§ãã
in - æåã®ãœãŒã¹ã§ããcharé
åãoffset - 調ã¹ãé
åã®æåã®æåãlen - æ€èšããæåæ°ãNumberFormatException - inãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå ŽåããŸãã¯å®çŸ©ãããéšåé
åãå®å
šã«inå
ã«ãªãå Žåãpublic BigDecimal(char[] in,
int offset,
int len,
MathContext mc)
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããŠãåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã
æåã·ãŒã±ã³ã¹ãæåé
åå
ã§ãã§ã«äœ¿çšå¯èœãªå Žåãcharé
åãæååã«å€æããBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšãããããããã®ã³ã³ã¹ãã©ã¯ã¿ã䜿ã£ãæ¹ãé«éã§ãã
in - æåã®ãœãŒã¹ã§ããcharé
åãoffset - 調ã¹ãé
åã®æåã®æåãlen - æ€èšããæåæ°ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåãNumberFormatException - inãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå ŽåããŸãã¯å®çŸ©ãããéšåé
åãå®å
šã«inå
ã«ãªãå Žåãpublic BigDecimal(char[] in)
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã
æåã·ãŒã±ã³ã¹ãæåé
åãšããŠãã§ã«äœ¿çšå¯èœãªå Žåãcharé
åãæååã«å€æããŠBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšãããããããã®ã³ã³ã¹ãã©ã¯ã¿ã䜿ã£ãæ¹ãé«éã§ãã
in - æåã®ãœãŒã¹ã§ããcharé
åãNumberFormatException - inãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå Žåãpublic BigDecimal(char[] in,
MathContext mc)
BigDecimalã®æåé
å衚çŸãBigDecimalã«å€æããã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãåãæåã·ãŒã±ã³ã¹ãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸãã
æåã·ãŒã±ã³ã¹ãæåé
åãšããŠãã§ã«äœ¿çšå¯èœãªå Žåãcharé
åãæååã«å€æããŠBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšãããããããã®ã³ã³ã¹ãã©ã¯ã¿ã䜿ã£ãæ¹ãé«éã§ãã
in - æåã®ãœãŒã¹ã§ããcharé
åãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåãNumberFormatException - inãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå Žåãpublic BigDecimal(String val)
BigDecimalã®æåå衚çŸãBigDecimalã«å€æããŸãã æåå衚çŸã¯ãä»»æã®ç¬Šå·ã+ã(ã\u002Bã)ãŸãã¯ã-ã(ã\u002Dã)ãšãããã«ç¶ã0æ¡ä»¥äžã®10鲿°å(ãæŽæ°éšã)ã®åã§æ§æãããä»»æã§å°æ°éšãŸãã¯ææ°ãä»éããŸãã
å°æ°éšã¯ãå°æ°ç¹ãš0æ¡ä»¥äžã®10鲿°åã§æ§æãããŸãã ãã®æååã§ã¯ãæŽæ°éšãŸãã¯å°æ°éšãå°ãªããšã1æ¡ã¯å¿ èŠã§ãã 笊å·ãæŽæ°éšãåæ°éšãããªãæ°åã¯æå¹æ°åãšåŒã°ããŸãã
ææ°ã¯ããeã(ã\u0065ã)ãŸãã¯ãEã(ã\u0045ã)ãšããæåã«ã1ã€ä»¥äžã®10鲿°åãç¶ãããã¡ã§æ§æãããŸãã ææ°å€ã¯ -Integer.MAX_VALUE (Integer.MIN_VALUE+1)ããInteger.MAX_VALUEã®ç¯å²ã®å€ã§ããå¿
èŠããããŸãã
ã€ãŸãããã®ã³ã³ã¹ãã©ã¯ã¿ãåãå ¥ããæååã¯æ¬¡ã®ææ³ã«ãã£ãŠèšè¿°ãããŸãã
- BigDecimalString:
- Signopt Significand Exponentopt
- Sign:
+-- Significand:
- IntegerPart
FractionPartopt.FractionPart- IntegerPart
- IntegerPart:
- Digits
- FractionPart:
- Digits
- Exponent:
- ExponentIndicator SignedInteger
- ExponentIndicator:
eE- SignedInteger:
- Signopt Digits
- Digits:
- Digit
- Digits Digit
- Digit:
Character.isDigit(char)ãtrueãè¿ãä»»æã®æå(0ã1ã2ãªã©)
è¿ãããBigDecimalã®ã¹ã±ãŒã«ã¯ãå°æ°éšã®æ¡æ°ãŸãã¯0 (æååã«å°æ°éšããªãå Žå)ãšãªããææ°ã調æŽããŸããæååã«ææ°ãããå Žåãã¹ã±ãŒã«ããææ°ãæžç®ãããŸãã çµæã®ã¹ã±ãŒã«å€ã¯ãInteger.MIN_VALUEããInteger.MAX_VALUEã®ç¯å²ã®å€ã§ããå¿
èŠããããŸãã
æåããæ°åãžã®ãããã³ã°ã¯Character.digit(char, int)ã§æäŸãããåºæ°10ãžã®å€æã«èšå®ãããŸãã Stringã«ã¯ãäžé©åãªæå(空çœãªã©)ãå«ããããšã¯ã§ããŸããã
äŸ:
è¿ãããBigDecimalã®å€ã¯ãsignificandÃ10 exponentãšçãããªããŸãã å·ŠåŽã«åæååãå³åŽã«çµæã®è¡šçŸ[BigInteger, scale]ã瀺ãããŸãã
"0" [0,0] "0.00" [0,2] "123" [123,0] "-123" [-123,0] "1.23E3" [123,-1] "1.23E+3" [123,-1] "12.3E+7" [123,-6] "12.0" [120,1] "12.3" [123,1] "0.00123" [123,5] "-1.23E-12" [-123,14] "1234.5E-4" [12345,5] "0E+7" [0,-7] "-0" [0,0]
ããŒã: floatããã³doubleã®NaNãããã³Â±Infinity以å€ã®å€ã§ã¯ããã®ã³ã³ã¹ãã©ã¯ã¿ã¯Float.toString(float)ããã³Double.toString(double)ã§è¿ãããå€ãšäºææ§ããããŸãã ãã®æ¹æ³ã§ã¯ãBigDecimal(double)ã³ã³ã¹ãã©ã¯ã¿ã§äºæž¬ãã§ããªãããšã«ãã圱é¿ãåããªããããéåžžã¯floatãŸãã¯doubleãBigDecimalã«å€æããæãŸããæ¹æ³ã§ãã
val - BigDecimalã®æåå衚çŸãNumberFormatException - valãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå Žåãpublic BigDecimal(String val, MathContext mc)
BigDecimalã®æåå衚çŸãBigDecimalã«å€æããã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã䜿çšããŠãåãæååãBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ãšããŠåãåããŸããval - BigDecimalã®æåå衚çŸãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåãNumberFormatException - valãBigDecimalã®æå¹ãªè¡šçŸã§ãªãå Žåãpublic BigDecimal(double val)
doubleãdoubleã®ãã€ããªæµ®åå°æ°ç¹å€ã®æ£ç¢ºãª10鲿°è¡šçŸã§ããBigDecimalã«å€æããŸãã è¿ãããBigDecimalã®ã¹ã±ãŒã«ã¯ã(10scaleÃval)ãæŽæ°ãšãªããããªæå°å€ã§ãã
ããŒã:
new BigDecimal(0.1)ãšèšè¿°ãããšã0.1ãšæ£ç¢ºã«çããBigDecimal (ã¹ã±ãŒã«1ã®ãã¹ã±ãŒã«ãªãã®å€1)ãäœæããããšèãããããããŸããããå®éã«ã¯0.1000000000000000055511151231257827021181583404541015625ãšçãããªããŸãã ããã¯ã0.1ãdoubleãšããŠ(ãŸãã¯æéé·2é²å°æ°ãšããŠ)æ£ç¢ºã«è¡šçŸã§ããªãããã§ãã ãããã£ãŠãã³ã³ã¹ãã©ã¯ã¿ã«æž¡ãããå€ã¯æ£ç¢ºã«0.1ãšçããããã§ã¯ãããŸããã
Stringã³ã³ã¹ãã©ã¯ã¿ã¯å®å
šã«äºæž¬å¯èœã§ããnew BigDecimal("0.1")ãšèšè¿°ãããšãäºæãããšããæ£ç¢ºã« 0.1ãšçããBigDecimalãäœæãããŸãã ãã®ãããéåžžã¯ããããããStringã³ã³ã¹ãã©ã¯ã¿ãåªå
ããŠäœ¿çšããããšããèŠãããŸãã
BigDecimalã®ãœãŒã¹ãšããŠdoubleã䜿çšããå¿
èŠãããå Žåããã®ã³ã³ã¹ãã©ã¯ã¿ã¯æ£ç¢ºãªå€æãè¡ãããšã«æ³šæããŠãã ããããã®ã³ã³ã¹ãã©ã¯ã¿ã§ã¯ãDouble.toString(double)ã¡ãœãããšBigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠdoubleãStringã«å€æãããšããšåãçµæã«ã¯ãªããŸããã ãã®ãããªçµæãåŸãã«ã¯ãstatic valueOf(double)ã¡ãœããã䜿çšããŸãã
val - BigDecimalã«å€æããdoubleå€ãNumberFormatException - valãç¡éãNaNã§ããå Žåãpublic BigDecimal(double val,
MathContext mc)
doubleãBigDecimalã«å€æããŸãã BigDecimalã®ã¹ã±ãŒã«ã¯ã(10scaleÃval)ãæŽæ°ã§ãããããªæå°å€ã§ãã
ãã®ã³ã³ã¹ãã©ã¯ã¿ã®çµæã¯äºæ³å€ã§ããå¯èœæ§ããããããäžè¬çã«äœ¿çšã¯ãèŠãããŸãããBigDecimal(double)ã³ã³ã¹ãã©ã¯ã¿ã®ããŒããåç
§ããŠãã ããã
val - BigDecimalã«å€æããdoubleå€ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããRoundingModeãUNNECESSARYã®å ŽåãNumberFormatException - valãç¡éãNaNã§ããå Žåãpublic BigDecimal(BigInteger val)
BigIntegerãBigDecimalã«å€æããŸãã BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããBigIntegerå€ãpublic BigDecimal(BigInteger val, MathContext mc)
BigIntegerãBigDecimalã«å€æããŸãã BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããBigIntegerå€ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal(BigInteger unscaledVal, int scale)
BigIntegerã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã BigDecimalã®å€ã¯(unscaledValÃ10-scale)ã§ãã unscaledVal - BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãscale - BigDecimalã®ã¹ã±ãŒã«ãpublic BigDecimal(BigInteger unscaledVal, int scale, MathContext mc)
BigIntegerã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã BigDecimalã®å€ã¯(unscaledValÃ10-scale)ã§ãããprecisionãšäžžãã¢ãŒãèšå®ã«åŸã£ãŠäžžããããŸãã unscaledVal - BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãscale - BigDecimalã®ã¹ã±ãŒã«ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal(int val)
intãBigDecimalã«å€æããŸãã BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããintå€ãpublic BigDecimal(int val,
MathContext mc)
intãBigDecimalã«å€æããŸãã äžžããè¡ãåã®BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããintå€ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal(long val)
longãBigDecimalã«å€æããŸãã BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããlongå€ãpublic BigDecimal(long val,
MathContext mc)
longãBigDecimalã«å€æããŸãã äžžããè¡ãåã®BigDecimalã®ã¹ã±ãŒã«ã¯0ã§ãã val - BigDecimalã«å€æããlongå€ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic static BigDecimal valueOf(long unscaledVal, int scale)
longã®ã¹ã±ãŒã«ãªãã®å€ãšintã®ã¹ã±ãŒã«ãBigDecimalã«å€æããŸãã ãã®ãstaticãã¡ã¯ããªã»ã¡ãœãããã¯ããã䜿ãããBigDecimalå€ã®åå©çšãå¯èœã«ããããã(long, int)ã³ã³ã¹ãã©ã¯ã¿ãããåªå
ããŠæäŸãããŸãã unscaledVal - BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãscale - BigDecimalã®ã¹ã±ãŒã«ãBigDecimalãpublic static BigDecimal valueOf(long val)
longå€ãã¹ã±ãŒã«ã0ã®BigDecimalã«å€æããŸãã ãã®ãstaticãã¡ã¯ããªã»ã¡ãœãããã¯ããã䜿ãããBigDecimalå€ã®åå©çšãå¯èœã«ããããã(long)ã³ã³ã¹ãã©ã¯ã¿ãããåªå
ããŠæäŸãããŸãã val - BigDecimalã®å€ãvalã§ããBigDecimalãpublic static BigDecimal valueOf(double val)
Double.toString(double)ã¡ãœããã§æäŸãããdoubleã®æ£èŠã®æåå衚çŸã䜿çšããŠãdoubleãBigDecimalã«å€æããŸãã
ããŒã: ããã¯äžè¬ã«ãdouble (ãŸãã¯float)ãBigDecimalã«å€æããããã®æšå¥šãããæ¹æ³ã§ããæ»ãå€ã¯ãDouble.toString(double)ã䜿çšããå Žåã®çµæããBigDecimalãæ§ç¯ããçµæãšçããããã§ãã
val - BigDecimalã«å€æããdoubleãvalãšçããããŸãã¯ã»ãŒçããBigDecimalãNumberFormatException - valãç¡éãNaNã§ããå Žåãpublic BigDecimal add(BigDecimal augend)
(this+augend)ã§ã¹ã±ãŒã«ãmax(this.scale(), augend.scale())ã§ããBigDecimalãè¿ããŸããaugend - ãã®BigDecimalã«å ç®ããå€ãthis + augendpublic BigDecimal add(BigDecimal augend, MathContext mc)
(this+augend)ã§ããBigDecimalãè¿ããŸãã ã©ã¡ããã®æ°å€ã0ã§ç²ŸåºŠèšå®ã0以å€ã§ããå Žåãå¿
èŠã«å¿ããŠäžžããããã»ãã®æ°å€ãçµæãšããŠäœ¿çšãããŸãã augend - ãã®BigDecimalã«å ç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis+augendãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal subtract(BigDecimal subtrahend)
(this - subtrahend)ã§ã¹ã±ãŒã«ãmax(this.scale(), subtrahend.scale())ã§ããBigDecimalãè¿ããŸããsubtrahend - ãã®BigDecimalããæžç®ããå€ãthis - subtrahendpublic BigDecimal subtract(BigDecimal subtrahend, MathContext mc)
(this - subtrahend)ã§ããBigDecimalãè¿ããŸãã subtrahendã0ã§ããå Žåãå¿
èŠã«å¿ããŠäžžããããthisã®å€ãçµæãšããŠäœ¿çšãããŸãã thisã0ã§ããå Žåãçµæã¯subtrahend.negate(mc)ã§ãã subtrahend - ãã®BigDecimalããæžç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis - subtrahendãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal multiply(BigDecimal multiplicand)
(this.scale()+multiplicand.scale())ã§ããBigDecimalãè¿ããŸããmultiplicand - ãã®BigDecimalã§ä¹ç®ããå€ãthis * multiplicandpublic BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
BigDecimalãè¿ããŸããmultiplicand - ãã®BigDecimalã§ä¹ç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis * multiplicandãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
(this /divisor)ã§ãã¹ã±ãŒã«ãæå®ããããã®ã§ããBigDecimalãè¿ããŸãã äžžããè¡ããæå®ããã¹ã±ãŒã«ã§çµæãçæããå¿
èŠãããå Žåã¯ãæå®ããäžžãã¢ãŒããé©çšãããŸãã
ãã®ã¬ã¬ã·ãŒã»ã¡ãœããããããæ°ããdivide(BigDecimal, int, RoundingMode)ã¡ãœããã䜿çšããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãscale - è¿ãããBigDecimalã®åã®ã¹ã±ãŒã«ãroundingMode - é©çšããäžžãã¢ãŒããthis / divisorArithmeticException - divisorã0ã§ãroundingMode==ROUND_UNNECESSARYã§ãããæå®ããã¹ã±ãŒã«ãé€ç®ã®çµæãæ£ç¢ºã«è¡šãã«ã¯ååã§ãªãå ŽåãIllegalArgumentException - roundingModeãæå¹ãªäžžãã¢ãŒãã衚ããªãå ŽåãROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARYpublic BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
(this /divisor)ã§ãã¹ã±ãŒã«ãæå®ããããã®ã§ããBigDecimalãè¿ããŸãã äžžããè¡ããæå®ããã¹ã±ãŒã«ã§çµæãçæããå¿
èŠãããå Žåã¯ãæå®ããäžžãã¢ãŒããé©çšãããŸãã divisor - ãã®BigDecimalãé€ç®ããå€ãscale - è¿ãããBigDecimalã®åã®ã¹ã±ãŒã«ãroundingMode - é©çšããäžžãã¢ãŒããthis / divisorArithmeticException - divisorã0ã§ãroundingMode==RoundingMode.UNNECESSARYã§ãããæå®ããã¹ã±ãŒã«ãé€ç®ã®çµæãæ£ç¢ºã«è¡šãã«ã¯ååã§ãªãå Žåãpublic BigDecimal divide(BigDecimal divisor, int roundingMode)
(this /divisor)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã äžžããè¡ããç¹å®ã®ã¹ã±ãŒã«ã§çµæãçæããå¿
èŠãããå Žåã¯ãæå®ãããäžžãã¢ãŒããé©çšãããŸãã
ãã®ã¬ã¬ã·ãŒã»ã¡ãœããããããæ°ããdivide(BigDecimal, RoundingMode)ã¡ãœããã䜿çšããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãroundingMode - é©çšããäžžãã¢ãŒããthis / divisorArithmeticException - divisor==0ã§ããå ŽåããŸãã¯roundingMode==ROUND_UNNECESSARYã§ãããthis.scale()ãé€ç®ã®çµæãæ£ç¢ºã«è¡šãã«ã¯ååã§ãªãå ŽåãIllegalArgumentException - roundingModeãæå¹ãªäžžãã¢ãŒãã衚ããªãå ŽåãROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARYpublic BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
(this /divisor)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã äžžããè¡ããç¹å®ã®ã¹ã±ãŒã«ã§çµæãçæããå¿
èŠãããå Žåã¯ãæå®ãããäžžãã¢ãŒããé©çšãããŸãã divisor - ãã®BigDecimalãé€ç®ããå€ãroundingMode - é©çšããäžžãã¢ãŒããthis / divisorArithmeticException - divisor==0ã§ããå ŽåããŸãã¯roundingMode==RoundingMode.UNNECESSARYã§ãããthis.scale()ãé€ç®ã®çµæãæ£ç¢ºã«è¡šãã«ã¯ååã§ãªãå Žåãpublic BigDecimal divide(BigDecimal divisor)
(this /divisor)ã§åªå
ã¹ã±ãŒã«ã(this.scale() - divisor.scale())ã§ããBigDecimalãè¿ããŸãã(å°æ°ç¹ä»¥äžãç¡éãšãªããã)æ£ç¢ºãªåã衚çŸã§ããªãå ŽåãArithmeticExceptionãã¹ããŒãããŸããdivisor - ãã®BigDecimalãé€ç®ããå€ãthis / divisorArithmeticException - æ£ç¢ºãªåã®å°æ°ç¹ä»¥äžãç¡éã§ããå Žåpublic BigDecimal divide(BigDecimal divisor, MathContext mc)
(this /divisor)ã§ããBigDecimalãè¿ããŸããdivisor - ãã®BigDecimalãé€ç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis /divisorãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYãŸãã¯mc.precision == 0ã§ããã€åã®å°æ°ç¹ä»¥äžãç¡éã§ããå Žåãpublic BigDecimal divideToIntegralValue(BigDecimal divisor)
(this /divisor)ã®æŽæ°éšã§ããBigDecimalãè¿ããŸãã çµæã®åªå
ã¹ã±ãŒã«ã¯(this.scale() - divisor.scale())ã§ãã divisor - ãã®BigDecimalãé€ç®ããå€ãthis /divisorã®æŽæ°éšãArithmeticException - divisor==0ã®å Žåpublic BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
(this /divisor)ã®æŽæ°éšã§ããBigDecimalãè¿ããŸãã æ£ç¢ºãªåã®æŽæ°éšã¯äžžãã¢ãŒãã«äŸåããªããããäžžãã¢ãŒãã¯ãã®ã¡ãœããã«ããè¿ãããå€ã«åœ±é¿ãåãŒããŸããã çµæã®åªå
ã¹ã±ãŒã«ã¯(this.scale() - divisor.scale())ã§ãã æ£ç¢ºãªåã®æŽæ°éšã«mc.precisionãããå€ãã®æ¡ãå¿
èŠãªå ŽåãArithmeticExceptionãã¹ããŒãããŸãã divisor - ãã®BigDecimalãé€ç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis /divisorã®æŽæ°éšãArithmeticException - divisor==0ã®å ŽåArithmeticException - mc.precisionã0ãã倧ãããçµæã«mc.precisionãããæ¡æ°ã®å€ã粟床ãå¿
èŠãªå Žåãpublic BigDecimal remainder(BigDecimal divisor)
(this % divisor)ã§ããBigDecimalãè¿ããŸãã
å°äœã¯ãthis.subtract(this.divideToIntegralValue(divisor).multiply(divisor))ã§åŸãããŸãã ããã¯ã¢ãžã¥ãæŒç®ã§ã¯ãªã(è² ã®çµæãå¯èœ)ã§ããããšã«çæããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãthis % divisorãArithmeticException - divisor==0ã®å Žåpublic BigDecimal remainder(BigDecimal divisor, MathContext mc)
(this % divisor)ã§ããBigDecimalãè¿ããŸãã MathContextèšå®ã¯ãå°äœã®èšç®ã«äœ¿çšããæé»çãªé€ç®ã«åœ±é¿ãåãŒããŸãã å®çŸ©ã®ç€ºããšãããå°äœã®èšç®èªäœã¯æ£ç¢ºã§ãã ãã®ãããå°äœã¯mc.getPrecision()ãããå€ãã®æ¡ãå«ãå¯èœæ§ããããŸãã
å°äœã¯ãthis.subtract(this.divideToIntegralValue(divisor, mc).multiply(divisor))ã§åŸãããŸãã ããã¯ã¢ãžã¥ãæŒç®ã§ã¯ãªã(è² ã®çµæãå¯èœ)ã§ããããšã«çæããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãmc - 䜿çšããã³ã³ããã¹ããthis % divisorãArithmeticException - divisor==0ã®å ŽåArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåããŸãã¯mc.precisionã0ãã倧ãããthis.divideToIntgralValue(divisor)ã®çµæã«mc.precisionãããæ¡æ°ã®å€ã粟床ãå¿
èŠãªå ŽåãdivideToIntegralValue(java.math.BigDecimal, java.math.MathContext)public BigDecimal[] divideAndRemainder(BigDecimal divisor)
divideToIntegralValueã®çµæãšããã«ç¶ã2ã€ã®ãªãã©ã³ãã®remainderã®çµæãå«ãã2èŠçŽ ã®BigDecimalé
åãè¿ããŸãã
æŽæ°ã®åãšå°äœã®äž¡æ¹ãå¿
èŠãªå ŽåãdivideToIntegralValueã¡ãœãããšremainderã¡ãœãããå¥ã
ã«äœ¿çšãããããé€ç®ã1åã ãå®è¡ããã°ãããã®ã¡ãœããã®æ¹ãé«éã§ããããšã«çæããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãããã³èšç®ãããå°äœãBigDecimalé
åãå(divideToIntegralValueã®çµæ)ãæåã®èŠçŽ ã§ãå°äœãæåŸã®èŠçŽ ãArithmeticException - divisor==0ã®å ŽådivideToIntegralValue(java.math.BigDecimal, java.math.MathContext), remainder(java.math.BigDecimal, java.math.MathContext)public BigDecimal[] divideAndRemainder(BigDecimal divisor, MathContext mc)
divideToIntegralValueã®çµæãšã2ã€ã®ãªãã©ã³ãã®remainderã®çµæãå«ãã2èŠçŽ ã®BigDecimalé
åãè¿ããŸãã
æŽæ°ã®åãšå°äœã®äž¡æ¹ãå¿
èŠãªå ŽåãdivideToIntegralValueã¡ãœãããšremainderã¡ãœãããå¥ã
ã«äœ¿çšãããããé€ç®ã1åã ãå®è¡ããã°ãããã®ã¡ãœããã®æ¹ãé«éã§ããããšã«çæããŠãã ããã
divisor - ãã®BigDecimalãé€ç®ããå€ãããã³èšç®ãããå°äœãmc - 䜿çšããã³ã³ããã¹ããBigDecimalé
åãå(divideToIntegralValueã®çµæ)ãæåã®èŠçŽ ã§ãå°äœãæåŸã®èŠçŽ ãArithmeticException - divisor==0ã®å ŽåArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåããŸãã¯mc.precisionã0ãã倧ãããthis.divideToIntgralValue(divisor)ã®çµæã«mc.precisionãããæ¡æ°ã®å€ã粟床ãå¿
èŠãªå ŽåãdivideToIntegralValue(java.math.BigDecimal, java.math.MathContext), remainder(java.math.BigDecimal, java.math.MathContext)public BigDecimal pow(int n)
BigDecimalãè¿ããŸãã环ä¹ã¯ã粟床ã®å¶éãªãã§æ£ç¢ºã«èšç®ãããŸãã
ãã©ã¡ãŒã¿nã¯ã0ãã999999999ã®ç¯å²ã«åãŸã£ãŠããå¿
èŠããããŸãã ZERO.pow(0)ã¯ONEãè¿ããŸãã å°æ¥ã®ãªãªãŒã¹ã§ã¯ããã®ã¡ãœããã®ææ°ã®èš±å®¹ç¯å²ãæ¡åŒµãããå¯èœæ§ããããŸãã
n - ãã®BigDecimalã®çޝä¹ãArithmeticException - nãç¯å²å€ã®å Žåãpublic BigDecimal pow(int n, MathContext mc)
BigDecimalãè¿ããŸãã çŸåšã®å®è£
ã§ã¯ãã³ã³ããã¹ãèšå®ã«åŸã£ãäžžãã§ANSIèŠæ ŒX3.274-1996ã§å®çŸ©ãããã³ã¢ã»ã¢ã«ãŽãªãºã ã䜿çšããŠããŸãã äžè¬çã«ãè¿ãããæ°å€ã¯ãéžæãããç²ŸåºŠã®æ£ç¢ºãªæ°å€ã®2 ulp以å
ã§ãã å°æ¥ã®ãªãªãŒã¹ã§ã¯ã誀差ã®èš±å®¹ç¯å²ãçããææ°ã®èš±å®¹ç¯å²ãæ¡å€§ããå¥ã®ã¢ã«ãŽãªãºã ã䜿çšããå¯èœæ§ããããŸãã
X3.274-1996ã¢ã«ãŽãªãºã ã¯ã次ã®ãšããã§ãã
ArithmeticExceptionäŸå€ã¯æ¬¡ã®æ¡ä»¶ã«åœãŠã¯ãŸãå Žåã«ã¹ããŒããã
abs(n) > 999999999
mc.precision == 0ãã€n < 0
mc.precision> 0ããã€nãmc.precisionã®10鲿¡æ°ãã倧ãã
nã0ã®å Žåãthisã0ã§ãONEãè¿ãããããã以å€ã®å Žåã¯ã次ã®ããã«ãªã
nãæ£ã®å Žåãäºä¹æ³ãç¹°ãè¿ããŠåäžã®ã¢ãã¥ã ã¬ãŒã¿ã«å
¥ããããšã§çµæãèšç®ãããã ã¢ãã¥ã ã¬ãŒã¿ãæã€åã
ã®ä¹ç®ã§ã¯ãmc.precision+elength+1 (elengthã¯nå
ã®10鲿¡æ°)ã«äžãã粟床ãé€ããmcãšåãæ°åŠã³ã³ããã¹ãèšå®ã䜿çšããã
nãè² ã®å Žåãnãæ£ã§ãããã®ããã«çµæãèšç®ãããããã®åŸããã®å€ã¯åè¿°ã®æå¹ãªç²ŸåºŠã䜿çšããŠ1ããé€ç®ãããã
n - ãã®BigDecimalã®çޝä¹ãmc - 䜿çšããã³ã³ããã¹ããArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å ŽåããŸãã¯nãç¯å²å€ã§ããå Žåãpublic BigDecimal abs()
BigDecimalã®çµ¶å¯Ÿå€ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸããabs(this)public BigDecimal abs(MathContext mc)
BigDecimalã®çµ¶å¯Ÿå€ã§ããBigDecimalãè¿ããŸããmc - 䜿çšããã³ã³ããã¹ããabs(this)ãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal negate()
(-this)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã-thisãpublic BigDecimal negate(MathContext mc)
(-this)ã§ããBigDecimalãè¿ããŸããmc - 䜿çšããã³ã³ããã¹ãã-thisãArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãpublic BigDecimal plus()
(+this)ã§ã¹ã±ãŒã«ãthis.scale()ã§ããBigDecimalãè¿ããŸãã
ãã®BigDecimalãåã«è¿ãã ãã®ãã®ã¡ãœããã¯ãåé
ãã€ãã¹ã»ã¡ãœããnegate()ã®å¯Ÿç§°ãšããŠå«ãŸããŠããŸãã
thisãnegate()public BigDecimal plus(MathContext mc)
(+this)ã§ããBigDecimalãè¿ããŸãã
ãã®ã¡ãœããã®å¹æã¯ãround(MathContext)ã¡ãœããã®å¹æãšåãã§ãã
mc - 䜿çšããã³ã³ããã¹ããthisã 0ã®çµæã®ã¹ã±ãŒã«ã¯0 ArithmeticException - çµæãæ£ç¢ºã§ãªããäžžãã¢ãŒããUNNECESSARYã®å Žåãround(MathContext)public int signum()
BigDecimalã®ç¬Šå·èŠçŽ ãè¿ããŸããBigDecimalãè² ã®å Žå㯠-1ããŒãã®å Žåã¯0ãæ£ã®å Žåã¯1ãpublic int scale()
BigDecimalã®ã¹ã±ãŒã«ãè¿ããŸãã 0ãŸãã¯æ£ã®å Žåãã¹ã±ãŒã«ã¯å°æ°ç¹ä»¥äžã®æ¡æ°ã§ãã è² ã®å Žåãã¹ã±ãŒã«ãªãã®æ°å€ã«ãã¹ã±ãŒã«ã®æ£è² ãéã«ããå€ãææ°ãšãã10ã®çޝä¹ãä¹ç®ããŸãã ããšãã°ã-3ã®ã¹ã±ãŒã«ã§ã¯ãã¹ã±ãŒã«ãªãã®å€ã«1000ãä¹ç®ãããŸãã BigDecimalã®ã¹ã±ãŒã«ãpublic int precision()
BigDecimalã®ç²ŸåºŠãè¿ããŸãã 粟床ãšã¯ãã¹ã±ãŒã«ãªãã®å€ã®æ¡æ°ã®ããšã§ãã
0ã®ç²ŸåºŠã¯1ã§ãã
BigDecimalã®ç²ŸåºŠãpublic BigInteger unscaledValue()
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ã§ããBigIntegerãè¿ããŸãã ((this * 10this.scale())ãèšç®ããã) BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãpublic BigDecimal round(MathContext mc)
MathContextèšå®ã«åŸã£ãŠäžžããããBigDecimalãè¿ããŸãã 粟床èšå®ã0ã®å Žåãäžžãã¯å®è¡ãããŸããã
ãã®ã¡ãœããã®å¹æã¯ãplus(MathContext)ã¡ãœããã®å¹æãšåãã§ãã
mc - 䜿çšããã³ã³ããã¹ããMathContextèšå®ã«åŸã£ãŠäžžããããBigDecimalãArithmeticException - äžžãã¢ãŒããUNNECESSARYã§ãBigDecimalæŒç®ã«äžžããå¿
èŠãªå Žåãplus(MathContext)public BigDecimal setScale(int newScale, RoundingMode roundingMode)
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ã®ç©ãŸãã¯åã«ããæ±ºå®ãããBigDecimalãè¿ããŸãã ã¹ã±ãŒã«ãæŒç®ã§æžããããå Žåãã¹ã±ãŒã«ãªãã®å€ã¯(ä¹ç®ã§ã¯ãªã)é€ç®ããå¿
èŠããããå€ãå€ããå¯èœæ§ããããŸãããã®å Žåãæå®ããäžžãã¢ãŒããé€ç®ã«é©çšãããŸãã
BigDecimalãªããžã§ã¯ãã¯äžå€ã§ãããããsetXã¡ãœããã§ãã£ãŒã«ãXã倿Žããéåžžã®å Žåãšã¯ç°ãªãããã®ã¡ãœãããåŒã³åºããŠãå
ã®ãªããžã§ã¯ãã¯å€æŽãããªãããšã«æ³šæããŠãã ããã 代ããã«ãsetScaleã¯é©åãªã¹ã±ãŒã«ãæã€ãªããžã§ã¯ããè¿ããŸããè¿ããããªããžã§ã¯ãã¯ãæ°ããå²ãåœãŠãããå Žåãšããã§ãªãå ŽåããããŸãã
newScale - è¿ãããBigDecimalã®å€ã®ã¹ã±ãŒã«ãroundingMode - é©çšããäžžãã¢ãŒããBigDecimalããã®ã¹ã±ãŒã«ãªãã®å€ã¯ããã®BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ãšã®ç©ãŸãã¯åã«ããæ±ºå®ãããŸããArithmeticException - roundingMode==UNNECESSARYã§ãããæå®ããã¹ã±ãŒã«æŒç®ã§äžžããå¿
èŠãªå ŽåãRoundingModepublic BigDecimal setScale(int newScale, int roundingMode)
BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ã®ç©ãŸãã¯åã«ããæ±ºå®ãããBigDecimalãè¿ããŸãã ã¹ã±ãŒã«ãæŒç®ã§æžããããå Žåãã¹ã±ãŒã«ãªãã®å€ã¯(ä¹ç®ã§ã¯ãªã)é€ç®ããå¿
èŠããããå€ãå€ããå¯èœæ§ããããŸãããã®å Žåãæå®ããäžžãã¢ãŒããé€ç®ã«é©çšãããŸãã
BigDecimalãªããžã§ã¯ãã¯äžå€ã§ãããããsetXã¡ãœããã§ãã£ãŒã«ãXã倿Žããéåžžã®å Žåãšã¯ç°ãªãããã®ã¡ãœãããåŒã³åºããŠãå
ã®ãªããžã§ã¯ãã¯å€æŽãããªãããšã«æ³šæããŠãã ããã 代ããã«ãsetScaleã¯é©åãªã¹ã±ãŒã«ãæã€ãªããžã§ã¯ããè¿ããŸããè¿ããããªããžã§ã¯ãã¯ãæ°ããå²ãåœãŠãããå Žåãšããã§ãªãå ŽåããããŸãã
ãã®ã¬ã¬ã·ãŒã»ã¡ãœããããããæ°ããsetScale(int, RoundingMode)ã¡ãœããã䜿çšããŠãã ããã
newScale - è¿ãããBigDecimalã®å€ã®ã¹ã±ãŒã«ãroundingMode - é©çšããäžžãã¢ãŒããBigDecimalããã®ã¹ã±ãŒã«ãªãã®å€ã¯ããã®BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ãšã®ç©ãŸãã¯åã«ããæ±ºå®ãããŸããArithmeticException - roundingMode==ROUND_UNNECESSARYã§ãããæå®ããã¹ã±ãŒã«æŒç®ã§äžžããå¿
èŠãªå ŽåãIllegalArgumentException - roundingModeãæå¹ãªäžžãã¢ãŒãã衚ããªãå ŽåãROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARYpublic BigDecimal setScale(int newScale)
BigDecimalãšåãæ°å€ã§ãããBigDecimalãè¿ããŸãã ãããäžå¯èœãªå ŽåãArithmeticExceptionãã¹ããŒããŸãã
éåžžããã®åŒåºãã¯ã¹ã±ãŒã«ã®æ¡åŒµã«äœ¿çšããããã®å Žåã«ã¯æå®ãããã¹ã±ãŒã«ãšæ£ããå€ã®BigDecimalã®ååšãä¿èšŒãããŸãã å€ã倿Žããããšãªãåã¹ã±ãŒãªã³ã°ãè¡ãã®ã«ååãª0ãBigDecimalã®å°æ°éš(ãã®æŽæ°å€ã«ããã10ã®å æ°)ã®æåŸã«ããããšãåŒåºãåŽãèªèããŠããå Žåããã®åŒåºãã¯ã¹ã±ãŒã«ã®çž®å°ã«ã䜿çšã§ããŸãã
ãã®ã¡ãœããã¯setScaleã®2ã€ã®åŒæ°ã䜿ãããŒãžã§ã³ãšåãçµæãè¿ããŸãããäžžããæå®ããå¿
èŠã®ãªãå Žåã«ãåŒåºãåŽã¯äžžãã¢ãŒããæå®ããæéãçãããšãã§ããŸãã
BigDecimalãªããžã§ã¯ãã¯äžå€ã§ãããããsetXã¡ãœããã§ãã£ãŒã«ãXã倿Žããéåžžã®å Žåãšã¯ç°ãªãããã®ã¡ãœãããåŒã³åºããŠãå
ã®ãªããžã§ã¯ãã¯å€æŽãããªãããšã«æ³šæããŠãã ããã 代ããã«ãsetScaleã¯é©åãªã¹ã±ãŒã«ãæã€ãªããžã§ã¯ããè¿ããŸããè¿ããããªããžã§ã¯ãã¯ãæ°ããå²ãåœãŠãããå Žåãšããã§ãªãå ŽåããããŸãã
newScale - è¿ãããBigDecimalã®å€ã®ã¹ã±ãŒã«ãBigDecimalããã®ã¹ã±ãŒã«ãªãã®å€ã¯ããã®BigDecimalã®ã¹ã±ãŒã«ãªãã®å€ãšãç·äœå€ãç¶æã§ããé©åœãª10ã®çޝä¹ãšã®ç©ãŸãã¯åã«ããæ±ºå®ãããŸããArithmeticException - æå®ããã¹ã±ãŒã«æŒç®ã§äžžããå¿
èŠãªå ŽåãsetScale(int, int), setScale(int, RoundingMode)public BigDecimal movePointLeft(int n)
næ¡å·Šãžç§»åããŠããã«çããBigDecimalãè¿ããŸãã nãè² ã§ãªãå Žåã¯ãã¹ã±ãŒã«ã«nãåã«å ç®ããŸãã nãè² ã®å Žåã¯ãmovePointRight(-n)ã«çãããªããŸãã ãã®åŒåºãã«ãã£ãŠè¿ãããBigDecimalã¯ãå€(thisÃ10-n)ããã³ã¹ã±ãŒã«max(this.scale()+n, 0)ãšãªããŸãã n - å°æ°ç¹ãå·Šãžç§»åããæ¡æ°ãnæ¡å·Šãžç§»åãããããã«çããBigDecimalãArithmeticException - ã¹ã±ãŒã«ããªãŒããŒãããŒããå Žåãpublic BigDecimal movePointRight(int n)
næ¡å³ãžç§»åããŠããã«çããBigDecimalãè¿ããŸãã nãè² ã§ãªãå Žåã¯ãã¹ã±ãŒã«ããnãåã«æžç®ããŸãã nãè² ã®å Žåã¯ãmovePointLeft(-n)ã«çãããªããŸãã ãã®åŒåºãã«ãã£ãŠè¿ãããBigDecimalã¯ãå€(thisÃ10n)ããã³ã¹ã±ãŒã«max(this.scale()-n, 0)ãšãªããŸãã n - å°æ°ç¹ãå³ãžç§»åããæ¡æ°ãnæ¡å³ãžç§»åãããããã«çããBigDecimalãArithmeticException - ã¹ã±ãŒã«ããªãŒããŒãããŒããå Žåãpublic BigDecimal scaleByPowerOfTen(int n)
this * 10n)ã«çããBigDecimalãè¿ããŸãã çµæã®ã¹ã±ãŒã«ã¯(this.scale() - n)ã§ãã n - ã¹ã±ãŒã«ãæå®ãã10ã®çޝä¹ã®ææ°this * 10n)ã«çããBigDecimalArithmeticException - ã¹ã±ãŒã«ã32ãããæŽæ°ã®ç¯å²å€ã§ããå Žåãpublic BigDecimal stripTrailingZeros()
BigDecimalãè¿ããŸãã ããšãã°ã[6000, 1]ã«çãã[BigInteger, scale]ã³ã³ããŒãã³ããæã€BigDecimalå€600.0ããæ«å°Ÿã®0ãåãé€ããšã[6, -2]ã«çãã[BigInteger, scale]ã³ã³ããŒãã³ããæã€6E2ã«ãªããŸãã ãã®BigDecimalã®æ°å€ã0ã«çããå Žåã¯ãBigDecimal.ZEROãè¿ãããŸãã BigDecimalãpublic int compareTo(BigDecimal val)
BigDecimalãæå®ãããBigDecimalãšæ¯èŒããŸãã ãã®ã¡ãœããã§ã¯ãå€ã¯çãããã¹ã±ãŒã«ãç°ãªã2ã€ã®BigDecimalãªããžã§ã¯ã(ããšãã°ã2.0ãš2.00)ãçãããšèŠãªãããŸãã ãã®ã¡ãœããã¯ã6ã€ã®booleanåã®æ¯èŒæŒç®å(<ã==ã>ã>=ã!=ã<=)ã®ããããã«å¯Ÿããåã
ã®ã¡ãœããã®ä»£ããã«æäŸãããŸãã ãããã®æ¯èŒãè¡ãã«ã¯(x.compareTo(y) <op> 0)ãšããçµåãããèŠãããŸãããã®å Žåã<op>ã«ã¯6ã€ã®æ¯èŒæŒç®åã®ãã¡ã®1ã€ãå
¥ããŸãã compareToãã€ã³ã¿ãã§ãŒã¹Comparable<BigDecimal>val - ãã®BigDecimalãšæ¯èŒããBigDecimalãBigDecimalã®æ°å€ãvalããå°ããå Žå㯠-1ãçããå Žåã¯0ã倧ããå Žåã¯1ãpublic boolean equals(Object x)
BigDecimalãæå®ãããObjectãšåããã©ããæ¯èŒããŸãã compareToãšéãããã®ã¡ãœããã¯ã2ã€ã®BigDecimalãªããžã§ã¯ããå€ãã¹ã±ãŒã«ãåãã§ããå Žåã«ã ãçãããšèŠãªããŸã(ãããã£ãŠããã®ã¡ãœããã§ã¯2.0ãš2.00ã¯çãããªã)ã equalsãã¯ã©ã¹Objectx - ãã®BigDecimalãšæ¯èŒããObjectãObjectãBigDecimalã§ããã®å€ãšã¹ã±ãŒã«ããã®BigDecimalãšçããå Žåã«ã ãtrueãcompareTo(java.math.BigDecimal), hashCode()public BigDecimal min(BigDecimal val)
BigDecimalãšvalã®æå°å€ãè¿ããŸããval - æå°å€ã®èšç®ã«äœ¿çšããå€ãBigDecimalãšvalã®ãã¡ã§å°ããæ¹ã®å€ãæã€BigDecimalã çããå Žåã¯ãcompareToã¡ãœããã§å®çŸ©ãããããã«ãthisãè¿ãããŸãã compareTo(java.math.BigDecimal)public BigDecimal max(BigDecimal val)
BigDecimalãšvalã®æå€§å€ãè¿ããŸããval - æå€§å€ã®èšç®ã«äœ¿çšããå€ãBigDecimalãšvalã®ãã¡ã§å€§ããæ¹ã®å€ãæã€BigDecimalã çããå Žåã¯ãcompareToã¡ãœããã§å®çŸ©ãããããã«ãthisãè¿ãããŸãã compareTo(java.math.BigDecimal)public int hashCode()
BigDecimalã®ããã·ã¥ã»ã³ãŒããè¿ããŸãã å€ãçãããã¹ã±ãŒã«ãç°ãªã2ã€ã®BigDecimalãªããžã§ã¯ã(ããšãã°ã2.0ãš2.00)ã®ããã·ã¥ã»ã³ãŒãã¯ãéåžžã¯åãã§ã¯ãããŸããã hashCodeãã¯ã©ã¹ObjectBigDecimalã®ããã·ã¥ã»ã³ãŒããequals(Object)public String toString()
BigDecimalã®æåå衚çŸãè¿ããŸãã
BigDecimalã®æ£èŠã®æåå圢åŒã¯ã次ã®ã¹ãããã§äœæãããŸãããŸããBigDecimalã®ã¹ã±ãŒã«ãªãã®å€ã®çµ¶å¯Ÿå€ããã0ãããã9ããŸã§ã®æåã䜿çšãããå
é ã«0ãä»ããªãæåå(åºæ°10)ã«å€æãããŸã(ãã ããå€ã0ã§ããå Žåã¯ãåäžã®æåã0ãã䜿çšããã)ã
次ã«ã調æŽãããææ°ãèšç®ãããŸããããã¯ãæ£è² ãéã«ããã¹ã±ãŒã«ã«ã倿ãããã¹ã±ãŒã«ãªãã®å€ã®æåæ°ãå ç®ãããã®ãã1ãæžç®ãããã®ã§ãã ã€ãŸãã-scale+(ulength-1)ã§ãããulengthã¯10鲿°ã®ã¹ã±ãŒã«ãªãã®å€ã®çµ¶å¯Ÿå€ã®é·ã(粟床)ã§ãã
ã¹ã±ãŒã«ã0以äžã§ã調æŽãããææ°ã-6以äžã§ããå Žåãæ°å€ã¯ææ°è¡šçŸãªãã®æå圢åŒã«å€æãããŸãã ãã®å Žåãã¹ã±ãŒã«ã0ã®ãšãã¯å°æ°ç¹ã¯è¿œå ãããŸãããã¹ã±ãŒã«ãæ£ã®ãšãã¯ãå°æ°ç¹ãã¹ã±ãŒã«ãšãšãã«æ¿å
¥ãããå°æ°ç¹ä»¥äžã®æåæ°ãæå®ãããŸããå¿
èŠã«å¿ããŠã倿ãããã¹ã±ãŒã«ãªãã®å€ã®å·Šã«æåã0ãã远å ãããŸãã ãã®æ¿å
¥ã®ããšã«å°æ°ç¹ã«å
è¡ããæåããªãå Žåã¯ãå
é ã«éåžžã®æåã0ããä»ããããŸãã
ãã®ä»ã®å Žå(ã€ãŸããã¹ã±ãŒã«ãè² ããŸãã¯èª¿æŽãããææ°ã-6æªæºã®å Žå)ãæ°å€ã¯ææ°è¡šçŸã䜿çšããŠæå圢åŒã«å€æãããŸãã ãã®å Žåã倿ãããBigIntegerã«è€æ°ã®æ¡ããããšããæåã®æ¡ã®åŸãã«å°æ°ç¹ãæ¿å
¥ãããŸãã æ¬¡ã«ã倿ãããã¹ã±ãŒã«ãªãã®å€ã®åŸãã«ã(æ¿å
¥ãããå°æ°ç¹ãšãšãã«)æå圢åŒã®ææ°ãä»ããããŸããããã¯ãæåãEããããã³ãã®çŽåŸã®èª¿æŽãããææ°ãæå圢åŒã«å€æãããã®ã§æ§æãããŸãã åŸè
ã¯åºæ°10ã§ãå
é ã«0ãä»ãããã0ãããã9ãã䜿çšãã調æŽãããææ°ãè² ã®å Žåã¯å¿
ãå
é ã«ç¬Šå·æåã-ã(ãu002Dã)ãããã§ãªãå Žåã¯ã+ã(ã\u002Bã)ãä»ããŠããŸãã
æåŸã«ãã¹ã±ãŒã«ãªãã®å€ã0æªæºã®å Žåã¯ãæååå
šäœã®å
é ã«ãã€ãã¹ç¬Šå·æåã-ã(ã\u002Dã)ãä»ããããŸãã ã¹ã±ãŒã«ãªãã®å€ã0ãŸãã¯æ£ã®å Žåãç¬Šå·æåã¯ä»ããããŸããã
äŸ:
å衚çŸã®å·ŠåŽã¯[unscaled value, scale]ãå³åŽã¯çµæã®æååã瀺ããŸãã
[123,0] "123" [-123,0] "-123" [123,-1] "1.23E+3" [123,-3] "1.23E+5" [123,1] "12.3" [123,5] "0.00123" [123,10] "1.23E-8" [-123,12] "-1.23E-10"ããŒã:
BigDecimalå€ãšãã®å€æã®çµæã®éã«ã¯ã1察1ã®ãããã³ã°ããããŸãã ã€ãŸãããã¹ãŠã®åºå¥å¯èœãªBigDecimalå€(ã¹ã±ãŒã«ãªãã®å€ãšã¹ã±ãŒã«)ã¯ãtoStringã䜿çšããçµæãšããŠãäžæã®æåå衚çŸãæã¡ãŸãã BigDecimal(String)ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠãã®æåå衚çŸãBigDecimalã«æ»ããšãå
ã®å€ã埩å
ãããŸãã
NumberFormatã¯ã©ã¹ãšãã®ãµãã¯ã©ã¹ã«ãã£ãŠåŠçãããŸãã
toEngineeringString()ã¡ãœããã䜿çšã§ããBigDecimalã®äžžãã«ã¯å°æ°ç¹ä»¥äžã®æ¡æ°ãæ¢ç¥ã§ããsetScaleã¡ãœããã䜿çšã§ããŸãã
Character.forDigitã«ããæäŸãããæ°åããæåãžã®ãããã³ã°ã䜿çšãããŸãã
toStringãã¯ã©ã¹ObjectBigDecimalã®æåå衚çŸãCharacter.forDigit(int, int), BigDecimal(java.lang.String)public String toEngineeringString()
BigDecimalã®æåå衚çŸãè¿ããŸãã
toString()ã¡ãœããã§èšè¿°ãããŠããããã«ãBigDecimalã衚ãæååãè¿ããŸãããã ããææ°è¡šçŸã䜿çšãããå Žåã0ã§ãªãå€ã®æŽæ°éšã1ãã999ã®ç¯å²ã«åãŸãããã«ã10ã®çޝä¹ã¯3ã®åæ°(æè¡è¡šèšæ³)ã«èª¿æŽãããŸãã å€0ã«ã€ããŠææ°è¡šçŸã䜿çšãããå Žåãå€0ã®ã¹ã±ãŒã«ãç¶æããããã«å°æ°ç¹ãš1ã€ãŸãã¯2ã€ã®å°æ°éšã®æ¡ã䜿çšãããŸãã toString()ã®åºåãšéãããã®ã¡ãœããã®åºåã§ã¯ãæååã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠåºåæååãBigDecimalã«æ»ãããšãã«ãBigDecimalã®åã[integer, scale]ãã¢ã®åŸ©å
ã¯ä¿èšŒãããªãããšã«æ³šæããŠãã ããã ãã®ã¡ãœããã®çµæã¯ãæååã³ã³ã¹ãã©ã¯ã¿ãã¡ãœããã®åºåã«é©çšããçµæãšçäŸ¡ãªæ°å€ãåžžã«çæãããšãã匱ãå¶çŽãæºãããŸãã
BigDecimalã®æåå衚çŸãpublic String toPlainString()
BigDecimalã®æåå衚çŸãè¿ããŸãã æ£ã®ã¹ã±ãŒã«ãæã€å€ã®å Žåãå°æ°ç¹ä»¥äžã®æ¡æ°ã¯ãã¹ã±ãŒã«ã瀺ãããã«äœ¿çšãããŸãã ã¹ã±ãŒã«ã0ãŸãã¯è² ã®å€ã®å Žåãçµæã®æååã¯ããã®å€ãã¹ã±ãŒã«0ãæã€æ°å€çã«ç䟡ãªå€ã«å€æãããã¹ã±ãŒã«0ã®å€ã®æ«å°Ÿã®0ãã¹ãŠãçµæã«ååšãããã®ããã«çæãããŸãã ã¹ã±ãŒã«ãªãã®å€ã0æªæºã®å Žåãæååå
šäœã®å
é ã«ãã€ãã¹ç¬Šå·æåã-ã(ã\u002Dã)ãä»ããããŸãã ã¹ã±ãŒã«ãªãã®å€ã0ãŸãã¯æ£ã®å Žåãç¬Šå·æåã¯ä»ããããŸããã ãã®ã¡ãœããã®çµæãæååã³ã³ã¹ãã©ã¯ã¿ã«æž¡ãããå Žåããã®BigDecimalã®æ°å€ã ããå¿
ã埩å
ãããŸããæ°ããBigDecimalã®è¡šçŸã¯ç°ãªãã¹ã±ãŒã«ãæã€å¯èœæ§ããããŸãã ç¹ã«ããã®BigDecimalãè² ã®ã¹ã±ãŒã«ãæã€å Žåããã®ã¡ãœããã®çµæã®æååã¯ãæååã³ã³ã¹ãã©ã¯ã¿ã«ãã£ãŠåŠçããããšãã«ã¹ã±ãŒã«0ãæã¡ãŸãã (ãã®ã¡ãœããã®åäœã¯ã1.4以åã®ãªãªãŒã¹ã§ã®toStringã¡ãœãããšåæ§ã§ãã) BigDecimalã®æåå衚çŸãtoString(), toEngineeringString()public BigInteger toBigInteger()
BigDecimalãBigIntegerã«å€æããŸãã ãã®å€æã¯ããJavaâ¢èšèªä»æ§ãã®ã»ã¯ã·ã§ã³5.1.3ã§å®çŸ©ãããdoubleããlongãžã®ãããŒã»ããªããã£ã倿ãšåæ§ã§ãããã®BigDecimalã®å°æ°éšã¯ãã¹ãŠç Žæ£ãããŸãã ãã®å€æã«ãããBigDecimalå€ã®ç²ŸåºŠã«é¢ããæ
å ±ã倱ãããå¯èœæ§ããããŸãã
å€æãæ£ç¢ºã§ãªã(ã€ãŸãã0以å€ã®å°æ°éšãç Žæ£ããã)å Žåã«äŸå€ãã¹ããŒããã«ã¯ãtoBigIntegerExact()ã¡ãœããã䜿çšããŠãã ããã
BigIntegerã«å€æããããã®BigDecimalãpublic BigInteger toBigIntegerExact()
BigDecimalãBigIntegerã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã ãã®BigDecimalã«0以å€ã®å°æ°éšãããå ŽåãäŸå€ãã¹ããŒãããŸãã BigIntegerã«å€æããããã®BigDecimalãArithmeticException - thisã0以å€ã®å°æ°éšãæã€å Žåãpublic long longValue()
BigDecimalãlongã«å€æããŸãã ãã®å€æã¯ããJavaâ¢èšèªä»æ§ãã®ã»ã¯ã·ã§ã³5.1.3ã§å®çŸ©ãããdoubleããshortãžã®ãããŒã»ããªããã£ã倿ãšåæ§ã§ãããã®BigDecimalã®å°æ°éšã¯ãã¹ãŠç Žæ£ãããŸããçµæã®ãBigIntegerããé·ãããŠlongå
ã«åãŸããªãå Žåãäžäœ64ãããã ããè¿ãããŸãã ãã®å€æã«ããããã®BigDecimalå€ã®çµ¶å¯Ÿå€ãšç²ŸåºŠå
šäœã«é¢ããæ
å ±ã倱ãããéã®ç¬Šå·ã§è¿ãããå¯èœæ§ããããŸãã public long longValueExact()
BigDecimalãlongã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã ãã®BigDecimalã«0以å€ã®å°æ°éšãããããŸãã¯longã®çµæãšããŠå¯èœãªç¯å²å€ã§ããå ŽåãArithmeticExceptionãã¹ããŒãããŸãã longã«å€æããããã®BigDecimalãArithmeticException - thisã0以å€ã®å°æ°éšãæã€ããŸãã¯longå
ã«åãŸããªãå Žåãpublic int intValue()
BigDecimalãintã«å€æããŸãã ãã®å€æã¯ããJavaâ¢èšèªä»æ§ãã®ã»ã¯ã·ã§ã³5.1.3ã§å®çŸ©ãããdoubleããshortãžã®ãããŒã»ããªããã£ã倿ãšåæ§ã§ãããã®BigDecimalã®å°æ°éšã¯ãã¹ãŠç Žæ£ãããŸããçµæã®ãBigIntegerããé·ãããŠintå
ã«åãŸããªãå Žåãäžäœ32ãããã ããè¿ãããŸãã ãã®å€æã«ããããã®BigDecimalå€ã®çµ¶å¯Ÿå€ãšç²ŸåºŠå
šäœã«é¢ããæ
å ±ã倱ãããéã®ç¬Šå·ã§è¿ãããå¯èœæ§ããããŸãã public int intValueExact()
BigDecimalãintã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã ãã®BigDecimalã«0以å€ã®å°æ°éšãããããŸãã¯intã®çµæãšããŠå¯èœãªç¯å²å€ã§ããå ŽåãArithmeticExceptionãã¹ããŒãããŸãã intã«å€æããããã®BigDecimalãArithmeticException - thisã0以å€ã®å°æ°éšãæã€ããŸãã¯intå
ã«åãŸããªãå Žåãpublic short shortValueExact()
BigDecimalãshortã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã ãã®BigDecimalã«0以å€ã®å°æ°éšãããããŸãã¯shortã®çµæãšããŠå¯èœãªç¯å²å€ã§ããå ŽåãArithmeticExceptionãã¹ããŒãããŸãã shortã«å€æããããã®BigDecimalãArithmeticException - thisã0以å€ã®å°æ°éšãæã€ããŸãã¯shortå
ã«åãŸããªãå Žåãpublic byte byteValueExact()
BigDecimalãbyteã«å€æãã倱ãããæ
å ±ããªããã©ããã確èªããŸãã ãã®BigDecimalã«0以å€ã®å°æ°éšãããããŸãã¯byteã®çµæãšããŠå¯èœãªç¯å²å€ã§ããå ŽåãArithmeticExceptionãã¹ããŒãããŸãã byteã«å€æããããã®BigDecimalãArithmeticException - thisã0以å€ã®å°æ°éšãæã€ããŸãã¯byteå
ã«åãŸããªãå Žåãpublic float floatValue()
BigDecimalãfloatã«å€æããŸãã ãã®å€æã¯ããJavaâ¢èšèªä»æ§ãã®ã»ã¯ã·ã§ã³5.1.3ã§å®çŸ©ãããdoubleããfloatãžã®çž®å°ããªããã£ã倿ãšåæ§ã§ãããã®BigDecimalã®çµ¶å¯Ÿå€ã倧ããããŠfloatãšããŠè¡šçŸã§ããªãå Žåãé©å®Float.NEGATIVE_INFINITYãŸãã¯Float.POSITIVE_INFINITYã«å€æãããŸãã æ»ãå€ãæéã§ããå Žåãããã®å€æã«ãããBigDecimalå€ã®ç²ŸåºŠã«é¢ããæ
å ±ã倱ãããå¯èœæ§ããããŸãã floatValueãã¯ã©ã¹Numberfloatã«å€æããããã®BigDecimalãpublic double doubleValue()
BigDecimalãdoubleã«å€æããŸãã ãã®å€æã¯ããJavaâ¢èšèªä»æ§ãã®ã»ã¯ã·ã§ã³5.1.3ã§å®çŸ©ãããdoubleããfloatãžã®çž®å°ããªããã£ã倿ãšåæ§ã§ãããã®BigDecimalã®çµ¶å¯Ÿå€ã倧ããããŠdoubleãšããŠè¡šçŸã§ããªãå Žåãé©å®Double.NEGATIVE_INFINITYãŸãã¯Double.POSITIVE_INFINITYã«å€æãããŸãã æ»ãå€ãæéã§ããå Žåãããã®å€æã«ãããBigDecimalå€ã®ç²ŸåºŠã«é¢ããæ
å ±ã倱ãããå¯èœæ§ããããŸãã doubleValueãã¯ã©ã¹Numberdoubleã«å€æããããã®BigDecimalãpublic BigDecimal ulp()
BigDecimalã®ulp (æçµæ¡åäœ)ã®ãµã€ãºãè¿ããŸãã 0以å€ã®BigDecimalå€ã®ulpã¯ããã®å€ãšã次ã«å€§ãã絶察å€ããã³åãæ¡æ°ãæã€BigDecimalå€ã®éã®æ£ã®è·é¢ã§ãã å€0ã®ulpã¯ãã¹ã±ãŒã«thisãæã€1ãšæ°å€ãçãããªããŸãã çµæã¯thisãšåãã¹ã±ãŒã«ã§æ ŒçŽããã0ããã³0以å€ã®å€ã®çµæã¯[1, this.scale()]ãšçãããªããŸãã thisã®ulpã®ãµã€ãº ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã