CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์—์„œ int๋ฅผ double๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์—์„œ int๋ฅผ double๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Java์˜ int ๋ฐ double ์œ ํ˜•์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…

int ๋Š” ์ •์ˆ˜(์˜ˆ: -25, 0, 1828182845)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ Java ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ด ์œ ํ˜•์€ 32๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. int ์ˆซ์ž์˜ ๋ฒ”์œ„๋Š” -231์—์„œ 231 - 1๊นŒ์ง€ ๋˜๋Š” -2147483648์—์„œ 2147483647๊นŒ์ง€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. Java์˜ Double ์œ ํ˜•์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ์— 64๋น„ํŠธ๋ฅผ ํ• ๋‹นํ•˜๋ฉฐ ์œ ํ˜•์˜ ๋ฒ”์œ„๋Š” -1.7์ž…๋‹ˆ๋‹ค. *10308์—์„œ 1.7*10308. int์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•˜๋ฉด -2*109 ะดะพ +2*109๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. int ์œ ํ˜•์ด ์—ฌ๋Ÿฌ double primitive ์œ ํ˜•์— ๋Œ€ํ•ด ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์— ๋งž์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์€ ๋ช…๋ฐฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ์ •์ˆ˜๋Š” ์†Œ์ˆ˜ ๋ถ€๋ถ„์ด 0์ธ ์†Œ์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์ ์ธ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 5 = 5.0 ์ด๋‚˜ -57.0 = -57.

๋”๋ธ”๋กœ ๋ณ€ํ™˜

Java ๊ด€์ ์—์„œ double ๋ฐ int ์œ ํ˜•๋„ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. int๋ฅผ double๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋” ํฐ ๊ฐ’์„ ๋” ์ž‘์€ ๊ฐ’์œผ๋กœ ์บ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ณ€ํ™˜์€ ์•”์‹œ์  ์œ ํ˜• ์ผ€์ด์‹ฑ ๋˜๋Š” ํ™•์žฅ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. int ๊ฐ’์„ double ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜์—ฌ Java์—์„œ ์ž๋™์œผ๋กœ int๋ฅผ double๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. typecasting์˜ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

public class intToDouble {
   public static void main(String[] args) {
       int myInt1 = 10;
       int myInt2 = 2147483647;
       double myDouble1, myDouble2;
       System.out.println("my integers are: " + myInt1 + ", " + myInt2);
       myDouble1 = myInt1;
       myDouble2 = myInt2;
       System.out.println("after typecasting/widening to double: " + myDouble1 + ", " + myDouble2);
   }
}
๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚ด ์ •์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 10, 2147483647 typecasting/double๋กœ ํ™•์žฅ ํ›„: 10.0, 2.147483647E9
์ฐธ๊ณ : ์—ฌ๊ธฐ์„œ E9๋Š” 109๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๊ณผํ•™ ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์ค‘ ์ˆซ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์ˆ˜ ๋ถ€๋ถ„์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋งˆ์นจํ‘œ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. double ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ทธ ์•ˆ์— ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์ด๋ ‡๊ฒŒ ํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹double ์ˆซ์ž๋Š” 0์ด๋”๋ผ๋„ ํ•ญ์ƒ ์†Œ์ˆ˜ ๋ถ€๋ถ„์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

์ค‘๋ฆฝ ์ˆ˜์น˜ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ double๋กœ ๋ณ€ํ™˜

๋˜ํ•œ Java์—์„œ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์ˆซ์ž ์—ฐ์‚ฐ์€ ์œ ํ˜• ํ™•์žฅ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ž‘์—… ๊ฒฐ๊ณผ๋Š” ๋” ๋„“์€ ์œ ํ˜•์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ int์—์„œ double๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด "์ค‘๋ฆฝ" ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด int์— 1.0(์ด์ค‘ ์ˆซ์ž)์„ ๊ณฑํ•˜๊ฑฐ๋‚˜ int์— 0.0์„ ๋”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ ์œ ํ˜• ๋ณ€ํ™˜์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

public class intToDouble {
   public static void main(String[] args) {
       double a = 1;  //you can also write 1.0 here. If you print it out it will be 1.0
       int b = 5, x = 7;
       System.out.println(x + 0.0);
       System.out.println(a*b);
   }
}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
7.0 5.0
๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , int๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์ˆซ์ž ๊ธฐ๋ณธ ์œ ํ˜•์„ double๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์—์„œ ๊ฐ€์žฅ ํฐ ๊ฒƒ์œผ๋กœ ๊ฐ€๋Šฅํ•œ ๋ณ€ํ™˜ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฐ”์ดํŠธ -> Short -> Char -> Int -> Long -> Float -> Double
Java์—์„œ int๋ฅผ double๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ• - 1
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION