Deep_Dev

๐Ÿ’กBigDecimal 

  • ์ž๋ฐ”์—์„œ ์ˆซ์ž๋ฅผ ์ •๋ฐ€ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด
  • ์ž๋ฐ”์—์„œ ์†Œ์ˆ˜๋Š” ์ •๋ฐ€๋„์˜ ํ•œ๊ณ„๋กœ ์ธํ•ด ๊ฐ’์ด ์œ ์‹ค๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ์  : ๋Š๋ฆฐ ์†๋„ & ๋ณต์žกํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• 
  • import java.math.BigDecimal;

 

๐Ÿ’กBigDecimal ๊ธฐ๋ณธ ์ƒ์ˆ˜

BigDecimal์€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐํ™”๊ฐ€ ๊ธฐ๋ณธ ํƒ€์ž…๋ณด๋‹ค ๊ธด ํŽธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” 0, 1, 10์€ ์ƒ์ˆ˜๋กœ ์ •์˜๋˜์–ด์žˆ์Œ

 

BigDecimal.ZERO // 0
BigDecimal.ONE // 1
BigDecimal.TEN // 10

 

 

๐Ÿ’กBigDecimal ์ดˆ๊ธฐํ™”

double ํƒ€์ž…์„ ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๊ฒŒ BigDecimal์„ ์ด์šฉํ•ด์„œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 

๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ BigDecimal ์ƒ์„ฑ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š”๊ฒƒ์ด๋‹ค. double ํƒ€์ž… ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.\

// double ํƒ€์ž… ์ „๋‹ฌ : 0.010000000000000023784623874623846234987234 ์—๋Ÿฌ ! 
BigDecimal a=new BigDecimal(0.01);

// ๋ฌธ์ž์—ด ์ „๋‹ฌ ๋ฐฉ๋ฒ•
BigDecimal b=new BigDecimal("0.01");
BigDecimal c=new BigDecimal(String.valueOf(0.01));
BigDecimal d=new BigDecimal.valueOf(0.01);

 

 

๐Ÿ’กBigDecimal ๋น„๊ต ์—ฐ์‚ฐ

BigDecimal์€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•  ๋•Œ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค. ํŠนํžˆ ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž(==)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

ํŠนํžˆ ๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž(==)๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์กฐ์‹ฌํ•ด์•ผ ํ•  ๊ฒƒ.

 

BigDecimal a=new BigDecimal("15.57");
BigDecimal b=new BigDecimal("15.570");

a==b; // false

//๊ฐ’ ๋น„๊ต์— ์‚ฌ์šฉ, ์†Œ์ˆ˜์  ๋ 0๊นŒ์ง€ ๊ฐ™์•„์•ผ true ๋ฆฌํ„ด 
a.equals(b) // false

// ๊ฐ’ ๋น„๊ต์— ์‚ฌ์šฉ, ์†Œ์ˆ˜์  ๋ 0 ๋ฌด์‹œํ•˜๊ณ  ๊ฐ’์ด ๋™์ผํ•˜๋ฉด 0, ํฌ๋ฉด 1, ์ž‘์œผ๋ฉด -1 ๋ฆฌํ„ด
a.compareTo(b); // 0

 

 

๐Ÿ’กBigDecimal ์‚ฌ์น™ ์—ฐ์‚ฐ

BigDecimal a=new BigDecimal("10");
BigDecimal b=new BigDecimal("3");

a.add(b); // ๋”ํ•˜๊ธฐ
a.substract(b); // ๋นผ๊ธฐ
a.multiply(b); // ๊ณฑํ•˜๊ธฐ
a.divide(b); // ๋‚˜๋ˆ„๊ธฐ
a.remainder(b); // ๋‚˜๋จธ์ง€
new BigDecimal("-3").abs();

a.min(b); // ๋‘ ์ˆ˜์ค‘ ์ตœ์†Œ๊ฐ’
a.max(b); // ๋‘ ์ˆ˜์ค‘ ์ตœ๋Œ€๊ฐ’