Bibi's DevLog ๐ค๐
[Java] ๋ฐฑ์ค 1008๋ฒ ๋ฌธ์ ํ์ด - ์ซ์ ์๋ฃํ int, long, float, double / / ๋๋์ ์์์ ์ดํ ์ถ๋ ฅ / ์ ์<->์ค์ ํ๋ณํ ๋ณธ๋ฌธ
[Java] ๋ฐฑ์ค 1008๋ฒ ๋ฌธ์ ํ์ด - ์ซ์ ์๋ฃํ int, long, float, double / / ๋๋์ ์์์ ์ดํ ์ถ๋ ฅ / ์ ์<->์ค์ ํ๋ณํ
๋น๋น bibi 2020. 11. 6. 11:52๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 1008๋ฒ ๋ฌธ์ ๋ฅผ ํผ ๊ณผ์ ์ ๊ธฐ๋ก์ ๋๋ค.
๋ฌธ์
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A/B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A, B < 10)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A/B๋ฅผ ์ถ๋ ฅํ๋ค. ์ค์ ์ ๋ต๊ณผ ์ถ๋ ฅ๊ฐ์ ์ ๋์ค์ฐจ ๋๋ ์๋์ค์ฐจ๊ฐ 10-9 ์ดํ์ด๋ฉด ์ ๋ต์ด๋ค.
์๋ฅผ ๋ค์ด, 1 3 ์ ์ ๋ ฅํ๋ฉด 0.33333333333333333333333333333333 ์ ์ถ๋ ฅ.
1000๋ฒ ๋ฌธ์ ์ ๋๊ฐ์ด ๋ง๋ค๊ณ ์ฐ์ฐ์๋ง /๋ก ๋ฐ๊พธ๋ฉด ๋๊ฒ ๋ค~ ํ๋๋ฐ ์ด๋ฆผ์๋ ์๋ฆฌ์๋ค.
โ ๋ int ๋ณ์๋ฅผ ๋๋๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ํญ์ int๋ก ์ถ๋ ฅ๋๋ค.
์๋ฅผ ๋ค์ด 1 / 3 = 0.3333... ์ด ๋์์ผ ํ๋๋ฐ 0์ผ๋ก ์ถ๋ ฅ๋๋ค.
์ ์ํ(int)์ ์์์ ์๋ ์๋ฆฌ๋ ํญ์ ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๐ ๋๋์ ์ ํตํด ์์์ ์ดํ์ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ผ๋ ค๋ฉด,
๋ ์ ์ค ํ๋๊ฐ ๋ฐ๋์ ์ค์ํ(float ๋๋ double)์ด์ด์ผ ํ๋ค.
์ฐธ๊ณ : mwultong.blogspot.com/2007/01/java-int-long-divide.html. ๊ฐ์ฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฌธ์ ์ ์กฐ๊ฑด์์ "๋ ์ ์ A์ B"๋ฅผ ๋ฐ์ผ๋ผ๊ณ ํ์ผ๋ฏ๋ก
A์ B๋ฅผ int๋ก ๋ฐ๋, ์ ์๋ฅผ ์ค์๋ก ํ๋ณํ์ ํด์ ์ฐ์ฐํ ๋ค ์ถ๋ ฅํด ์ฃผ์ด์ผ ํ๋ค.
๐ ์ ์-> ์ค์๋ก ํ๋ณํ (casting)
(int-> double) : intํ์ ๋ณ์๋ช ์์ (double)์ ๋ถ์ด๋ฉด doubleํ์ผ๋ก ํ๋ณํ์ด ๋๋ค.
(int -> float) : intํ์ ๋ณ์๋ช ์์ (float)๋ฅผ ๋ถ์ด๋ฉด floatํ์ผ๋ก ํ๋ณํ์ด ๋๋ค.
โป ๊ทธ์ธ ์๋ฐ ํ๋ณํ ์ ๋ฆฌ : coding-factory.tistory.com/130 ์ฐธ๊ณ . ๊ฐ์ฌํฉ๋๋ค.
โ ์ด์ฏค์์ ์๋ฐ ์ซ์ ์๋ฃํ ๊ฐ๋ ์ ๋ฆฌ
์ฐธ๊ณ : wikidocs.net/204 ๊ฐ์ฌํฉ๋๋ค.
(์์ฃผ ์ฐ์ด๋ ๊ฒ๋ง ์ ๋ฆฌ. //์ดํ๋ ๊ฑฐ์ ์ฐ์ด์ง ์์)
- ์ ์ : int, long // byte, short ๋ฑ
- int๋ -2147483648 ~ 2147483647 ๊น์ง ํํ ๊ฐ๋ฅ.
- long์ -9223372036854775808 ~ 9223372036854775807 ๊น์ง ํํ ๊ฐ๋ฅ.
- ์ฌ์ฉ )
int age = 10;
long countOfStar = 8764827384923849L; - long๋ณ์์ ๊ฐ์ ๋์
ํ ๋, ๋์
ํ๋ ๊ฐ์ด 2147483647๋ณด๋ค ํฐ ๊ฒฝ์ฐ ์ ๋ฏธ์ฌ L์ ๋ถ์ฌ ์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
- ์ค์ : float, double
- float๋ณด๋ค double์ด ๋ ๋์ ๋ฒ์์ ์ค์๋ฅผ ํํํ ์ ์๋ค.
- ์ฌ์ฉ )
float PI = 3.14f; ๋๋ 3.14F; ๋๋ (float)3.14;
double longPI = 3.14159265358979323846; - float๋ณ์์ ๊ฐ์ ๋์
ํ ๋๋ ์ ๋ฏธ์ฌ f ๋๋ F๋ฅผ ๋ถ์ด๊ฑฐ๋, ๊ฐ ์์ (float)๋ฅผ ์ ์ด์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
- float๋ณด๋ค double์ด ๋ ๋์ ๋ฒ์์ ์ค์๋ฅผ ํํํ ์ ์๋ค.
๋ด ์ฝ๋
import java.util.Scanner;
public class BJ_1008 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int numA = s.nextInt();
int numB = s.nextInt();
if (numA <= 0 || numB >= 10 ) return;
double D_numA = (double)numA;
double D_numB = (double)numB;
System.out.println(D_numA / D_numB);
}
}