์ฝ๋ฉํ ์คํธ๋ฅผ ํ๋ ์ฌ๋ฆผ์ ํด์ผํ ์ผ์ด ์์ด์, Math.ceil() ํจ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋ชป์ฌ์ฉํด์ ํ๋ ธ๊ธฐ ๋๋ฌธ์ ๋ฆฌ๋ง์ธ๋ ๊ฒธ ๊ธ์ ์ด๋ค.
์ผ๋จ ์ฌ๋ฆผ, ๋ฒ๋ฆผ, ๋ฐ์ฌ๋ฆผํ ๋ ํ๋ผ๋ฏธํฐ์ ์ค์ํ์ ๋ฃ์ด์ผํ๋๋ฐ, ์ ์ํ์ ๋ฃ์ด์ ์๋ชป ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค. ์ฒ์์ ์๊ทธ๋ฌ์ง ํ๋ค๊ฐ ์ ์ถ 3๋ถ ์ ์ ์์์ฐจ๋ฆฌ๊ณ ๋คํ์ด ๋ง์ถ ์ ์์๋ค.
์ฌ๋ฆผ์ด๋ ๋ฐ์ฌ๋ฆผ์์ ์ ์ํ์ ๋ฃ์ด ๋ฒ๋ฆฌ๋ฉด ์ ๋๋ก ๋์ํ์ง ์๋๋ค. ๋จผ์ 10 / 4 ๋ฅผ ์๋ก ๋ค์์ ๋ 10 / 4 ๋ ์ ์ํ ๋ชซ๋ง ์๊ธฐ๊ธฐ ๋๋ฌธ์ 2๊ฐ ๋๊ณ ํจ์ ๋ด์์ ์บ์คํ ๋์ด 2.0 ์ด ๋๊ณ ์ฌ๋ฆผ์ด๋ ๋ฐ์ฌ๋ฆผ์ 2.5๊ฐ ์๋๊ธฐ ๋๋ฌธ์ 2.0์ผ๋ก ๋์จ๋ค.
๊ทธ๋์ ๊ผญ ์ค์ํ์ผ๋ก ์บ์คํ ์ ํด์ฃผ๊ณ ์ฐ์ฐ์ ํด ํ๋ผ๋ฏธํฐ์ ๋ฃ์ด์ฃผ์ด์ผํ๋ค.
์ฌ๋ฆผ
์ ์๊ฐ์ ๋ฃ์ด์ ์ฐ์ฐํด์ฃผ๊ณ ์ถ์ผ๋ฉด ์๋์ ๊ฐ์ด ์บ์คํ ์ ํด์ค์ผ ํ๋ค. ์ฌ์ง์ด ๋ฐํ๊ฐ์ ์ ์ํ์ผ๋ก ํ๊ณ ์ถ์ผ๋ฉด ์ด 3๋ฒ์ ์บ์คํ ์ด ๋ค์ด๊ฐ๋ค.
int before = (int) Math.ceil((double) 10 / (double) 4);
์ด๋ฐ ๋ถํ์ ์บ์คํ ์ ํ์ง ์๊ณ , ๋จ์ ์ฐ์ฐ์ผ๋ก๋ง ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด ์๋ค.
๋์ ์ด ๋ฐฉ๋ฒ์ ํ๋ผ๋ฏธํฐ ๊ฐ์ด ๋ชจ๋ ์์์ผ ๋๋ง ๊ฐ๋ฅํ๋ค.
int before = (int) Math.ceil((double) 10 / (double) 4);
int after = (10 + 4 - 1) / 4;
์ด๋ ๊ฒ ํ๋ฉด before ์ after๋ ํญ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ค.
(x + y - 1) / y
์ ๊ณต์์ ์ฌ์ฉํ๋ฉด Math.ceil() ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ ์ ๋๋์ ์ ์ฌ๋ฆผ์ ํ ์ ์๋ค. ๋์ ์์์์๋ง ๊ฐ๋ฅํ๋ค๋ ๊ฑธ ๋ช ์ฌ!
โ์์์ผ ๊ฒฝ์ฐ
- -10 / 4 = -2.5
- Math.ceil(-2.5) = -2
- (-10 + 4 - 1) / 4 = (-7) / 4 = -1
๋ฒ๋ฆผ๊ณผ ๋ฐ์ฌ๋ฆผ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ๋ฅํ๋ค.
๋ฒ๋ฆผ
๋ฒ๋ฆผ์ ๊ทธ๋ฅ ์ฝ๊ฒ ์ฐ์ฐํ๋ฏ์ด ๋ชฉ ๋๋์ ์ฐ์ฐํ๋ฉด ๋๋ค.
int before = (int) Math.floor((double) 10 / (double) 4);
int after = 10 / 4; // ๊ฒฐ๊ณผ: 2
๋ด๋ฆผ์ ํญ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ ์ฝ๋ค.
๋ฐ์ฌ๋ฆผ
int before = (int) Math.round((double) 10 / (double) 4);
int after = (10 + 4 / 2) / 4;
(x + y / 2) / y
๋ฐ์ฌ๋ฆผ์ ๋๋ ์์ 2๋ฅผ ๋๋๊ณ ๋ํ๋ค ๋๋๋ฉด ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
์ด์ ์ฌ๋ฆผ, ๋ฒ๋ฆผ, ๋ฐ์ฌ๋ฆผ์ ์ฝ๊ฒํ์ฌ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ๋นจ๋ฆฌ ํ์ด๋ณด๋๋ก ํ์!!!!
๋๊ธ