Java programming

์ž๋ฐ” Math ํด๋ž˜์Šค ์˜ฌ๋ฆผ, ๋ฒ„๋ฆผ, ๋ฐ˜์˜ฌ๋ฆผ ceil, floor, round ์•ˆ ์“ฐ๋Š” ๊ฟ€ํŒ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2024. 10. 7.

์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ํ’€๋•Œ ์˜ฌ๋ฆผ์„ ํ•ด์•ผํ•  ์ผ์ด ์žˆ์–ด์„œ, 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๋ฅผ ๋‚˜๋ˆ„๊ณ  ๋”ํ•œ๋’ค ๋‚˜๋ˆ„๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์   ์˜ฌ๋ฆผ, ๋ฒ„๋ฆผ, ๋ฐ˜์˜ฌ๋ฆผ์„ ์‰ฝ๊ฒŒํ•˜์—ฌ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ๋นจ๋ฆฌ ํ’€์–ด๋ณด๋„๋ก ํ•˜์ž!!!!

 

๋Œ“๊ธ€