๐ก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); // ๋ ์์ค ์ต๋๊ฐ
'๐ ์ฝ๋ฉํ ์คํธ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] Queue ์ ๋ฆฌ (0) | 2022.11.05 |
---|---|
[JAVA] Stack ์ ๋ฆฌ (0) | 2022.11.05 |
[JAVA][์๊ณ ๋ฆฌ์ฆ] DFS ( ์ด์ง ํธ๋ฆฌ ์ํ ) (0) | 2022.11.04 |
[JAVA] ์ฌ๊ทํจ์ ( ๋ฉ๋ชจ์ด์ ์ด์ ) (0) | 2022.11.03 |
[JAVA] HashMap (0) | 2022.10.28 |