Search

λ³€μˆ˜μ™€ μžλ£Œν˜•

λ³€μˆ˜μ™€ μžλ£Œν˜•

β€’
λ³€μˆ˜
β€’
μžλ£Œν˜•
β—¦
κΈ°λ³Έ μžλ£Œν˜•
β—¦
μ°Έμ‘° μžλ£Œν˜•
β—¦
λ³€μˆ˜ν˜• μΆ”λ‘  (var)

λ³€μˆ˜

데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간

μžλ£Œν˜•

β€’
κΈ°λ³Έ μžλ£Œν˜•
β€’
μ°Έμ‘° μžλ£Œν˜•
β€’
λ³€μˆ˜ν˜• μΆ”λ‘  (var)

κΈ°λ³Έ μžλ£Œν˜•

μžλ°” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ λ©”λͺ¨λ¦¬μ— 값을 직접 μ €μž₯ν•˜λŠ” μžλ£Œν˜• * null 을 κ°€μ§ˆ 수 μ—†λ‹€.
μžλ°” κΈ°λ³Έ μžλ£Œν˜•μ€ 8가지 이닀.
μžλ£Œν˜•
크기 (λΉ„νŠΈ)
κΈ°λ³Έκ°’
κ°’μ˜ λ²”μœ„
boolean
1 (JVM에 따라 닀름)
false
true λ˜λŠ” false
byte
8
0
-128 ~ 127
char
16
'\u0000'
'\u0000' ~ '\uffff' (0 ~ 65,535)
short
16
0
-32,768 ~ 32,767
int
32
0
-2,147,483,648 ~ 2,147,483,647
long
64
0L
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float
32
0.0f
1.4E-45 ~ 3.4028235E38
double
64
0.0d
4.9E-324 ~ 1.7976931348623157E308

μ°Έμ‘° μžλ£Œν˜•

객체의 μ£Όμ†Œλ₯Ό μ°Έμ‘°ν•˜λŠ” μžλ£Œν˜•
β€’
클래슀
β€’
μΈν„°νŽ˜μ΄μŠ€
β€’
λ°°μ—΄
β€’
μ—΄κ±°νƒ€μž… (enum)

μžλ£Œν˜• μΆ”λ‘  (var)

μžλ°” 10λΆ€ν„° λ„μž…λœ μžλ£Œν˜•μœΌλ‘œ, 지역 λ³€μˆ˜ μ„ μ–Έ μ‹œ μžλ£Œν˜•μ„ λͺ…μ‹œν•˜μ§€ μ•Šκ³  μ»΄νŒŒμΌλŸ¬κ°€ μžλ£Œν˜•μ„ μΆ”λ‘ ν•˜μ—¬ μ„ νƒν•΄μ£ΌλŠ” ν‚€μ›Œλ“œ
var ν‚€μ›Œλ“œλ‘œ μžλ£Œν˜• μΆ”λ‘ ν•˜λ„λ‘ μ§€μ •ν•œλ‹€.
μ»΄νŒŒμΌλŸ¬κ°€ μ΅œμ΄ˆμ— ν•œ 번 μΆ”λ‘ ν•˜μ—¬ μ„ μ–Έν•œ μžλ£Œν˜•μ€ λ‹€λ₯Έ μžλ£Œν˜•μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€.
var number = 10; // int둜 μΆ”λ‘  var text = "Hello"; // String으둜 μΆ”λ‘ 
Java
볡사

μ‹€μˆ˜ μ—°μ‚°μ˜ ν•œκ³„

μ‹€μˆ˜ 연산을 ν•˜κΈ° μœ„ν•΄μ„œ, 컴퓨터가 μ‹€μˆ˜λ₯Ό 2μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜κ²Œ 되면, μ •μˆ˜ 뢀뢄은 λ¬Έμ œμ—†μ΄ λ³€ν™˜λ˜μ§€λ§Œ μ†Œμˆ˜ 뢀뢄은 2μ§„μˆ˜ ν˜•νƒœμ˜ λ¬΄ν•œμ†Œμˆ˜ ν˜„νƒœλ‘œ 끝없이 λ°˜λ³΅λœλ‹€.
10.1 을 μ΄μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λŠ” 경우
μ‹­μ§„μˆ˜ 10은 μ΄μ§„μˆ˜λ‘œ 1010 으둜 λ³€ν™˜λœλ‹€.
β€’
십진 μ •μˆ˜λ₯Ό μ΄μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λŠ” 방법 : 10을 2 둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό λ‚˜μ—΄ν•΄μ„œ μ“°κ³ , 거꾸둜 μ½λŠ”λ‹€.
β€’
십진 μ†Œμˆ˜λ₯Ό μ΄μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λŠ” 방법 : μ†Œμˆ˜ 뢀뢄을 2둜 κ³±ν•˜κ³ , μ •μˆ˜ 뢀뢄을 λ‚˜μ—΄ν•˜μ—¬ μˆœμ„œλŒ€λ‘œ μ½λŠ”λ‹€.
μ†Œμˆ˜λ‘œ μ΄μ§„μˆ˜λ₯Ό κ΅¬ν•˜λŠ” κ³Όμ •μ—μ„œ λ¬΄ν•œμ†Œμˆ˜κ°€ λ°œμƒν•œλ‹€.
μ΄λŸ¬ν•œ 원인 λ•Œλ¬Έμ— μ‹€μˆ˜ μ—°μ‚°μ˜ ν•œκ³„κ°€ λ°œμƒν•œλ‹€.
0.1의 μ΄μ§„μˆ˜λ₯Ό κ΅¬ν•œλ‹€λ©΄,
0.1 Γ— 2 = 0.2 β†’ 0 0.2 Γ— 2 = 0.4 β†’ 0 0.4 Γ— 2 = 0.8 β†’ 0 0.8 Γ— 2 = 1.6 β†’ 1 0.6 Γ— 2 = 1.2 β†’ 1 0.2 Γ— 2 = 0.4 β†’ 0 0.4 Γ— 2 = 0.8 β†’ 0 0.8 Γ— 2 = 1.6 β†’ 1 ...
Java
볡사
0.000110011001100110011001100110011001100110011... (λ¬΄ν•œ 반볡)
Java
볡사
μ΄λŸ¬ν•œ ν˜„μƒμ΄ 있기 λ•Œλ¬Έμ—, μ†Œμˆ˜μ  μ‹€μˆ˜ μ—°μ‚°μ˜ ν•œκ³„κ°€ λ°œμƒν•œλ‹€.

ν•΄κ²° 방법

BigDecimal 객체λ₯Ό μ΄μš©ν•˜μ—¬ μ—°μ‚° λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬, μ‹€μˆ˜ μ—°μ‚° 였차λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€.
import java.math.BigDecimal; public class BigDecimalExample { public static void main(String[] args) { BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); BigDecimal c = a.add(b); System.out.println(c); // μ •ν™•νžˆ 0.3 좜λ ₯ } }
Java
볡사