π§νλ³ν(νμ λ³ν)μ΄λ
intν λ³μμ doubleνμΈ 1.5 κ°μ λ£μΌλ €λ μν©μ΄ μλ€κ³ κ°μ μ ν΄λ³΄μ.
μλλ μ μνμΈ int νμ μ 1.5κ° λ€μ΄κ° μ μμ§λ§, νλ³νμ μ΄μ©νλ©΄ κ°λ₯νλ€!
νλ³νμ μλνμ λ³ν(묡μμ νλ³ν)κ³Ό κ°μ νμ λ³ν(λͺ μμ νλ³ν) λ κ°μ§κ° μμ.
β¨ μλ νμ λ³ν(묡μμ νλ³ν) implicit casting
κ°μ νμ© λ²μκ° μμ νμ μ΄ νμ© λ²μκ° ν° νμ μΌλ‘ μ μ₯λ λ λ°μν¨.
*κΈ°λ³Έ νμ μ νμ© λ²μ ν¬κΈ°μμΌλ‘ μ 리νλ©΄ μλμ κ°μ.
byte < short < int < long < float < double
μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ 'μλ νμ λ³ν'μ΄ λ°μν¨.
π₯οΈμλνμ λ³ν μμ
package basic;
//νλ³ν(TypeCast) : κ°μ μλ£νμ μΌμμ μΌλ‘ λ³ννμ¬ μ¬μ©νλ λ°©λ²
public class TypeCastApp {
public static void main(String[] args) {
System.out.println("κ²°κ³Ό = "+(3+1.5));//3(int)+1.5(double)>>3.0(double)+1.5(double) >> 4.5(double)
//1)
double su=10;
System.out.println("su = "+su);
//2)
System.out.println("κ²°κ³Ό = "+95/10);// int / int >> int
System.out.println("κ²°κ³Ό = "+95.0/10.0);// double / double >> double
System.out.println("κ²°κ³Ό = "+95.0/10);// double / int >> double / double λ‘ μλνλ³ν
int kor=95, eng=90;
int tot=kor+eng;//μ΄μ μ κ³μ°νμ¬ μ μ₯
System.out.println("λ κ³Όλͺ©μ μ μ ν© = "+tot);
//double ave=tot/2;//νκ· μ κ³μ°νμ¬ μ μ₯ - μ°μ° κ²°κ³Όκ°: μ μκ°(92) >> μ€μ(92.0) μλνλ³ν
double ave=tot/2.; //μλνλ³ν - μ°μ° κ²°κ³Όκ°(νκ· )μΈ μ€μ(92.5)μ΄ λ³μμ μ μ₯
System.out.println("μ΄μ = "+tot+", νκ· = "+ave);
byte su1=10, su2=20;
int su3=su1+su2;
System.out.println("su3 = "+su3);
System.out.println("==================================================");
μ μ½λμμ 1), 2) λΆλΆμ μ΄ν΄λ³΄λ©΄..
1) μ€μνμΈ doubleνμΌλ‘ suλΌλ λ³μλ₯Ό μ μΈνκ³ μ μ 10μ λμ νλ€.
10μ μ μμ§λ§, λμ λ λ³μ suκ° μ€μνμ΄λ―λ‘ μΆλ ₯ μμλ 10.0μΌλ‘ μΆλ ₯λλ κ²μ λ³Ό μ μλ€.
2) μλ‘ λ€λ₯Έ νμ μ λ³μλ€λ‘ μ°μ°ν λλ νμ© λ²μκ° μμ νμ μ΄ νμ© λ²μκ° ν° νμ μΌλ‘ λ³νλλ€.
μμμ 보λ―, ' 95.0(double) / 10(int) ' μ κ²°κ³Όλ 9.5κ° λλ€. κ·Έλ¬λ ' 95(int) / 10(int) 'λ μμμ λ€λ μλ¦¬κ³ 9λ§ μΆλ ₯λλ€.
β¨ κ°μ νμ λ³ν(λͺ μμ νλ³ν) explicit casting
νμ© λ²μκ° ν° νμ μ μμ νμ μ λ£μΌλ €κ³ νλ©΄ μλ¬κ° λλ€.
μ΄λ μ¬μ©μκ° μ΄λ€ νμ μΌλ‘ λ³νν μ§ μ ν΄μ£Όλ©΄ μλ¬κ° ν΄κ²°μ΄ λλ€.
μ΄κ² λ°λ‘ κ°μ νμ λ³νμ.
π₯οΈκ°μ νμ λ³ν μμ
//1)
//κ°μ νλ³ν => Cast μ°μ°μ : (μλ£ν)κ°
int num=(int)12.3;//(int)12.3 = 12
System.out.println("num = "+num);
//2)
int num1=95, num2=10;
//double num3=num1/num2;//λ³μκ° : 9.0
double num3=(double)num1/num2;//λ³μκ° : 9.5
System.out.println("num3 = "+num3);
int num4=100_000_000, num5=30;
//μ μκ°μ 4Byte(-2147483648~2147483647)λ‘ ννλμ΄ μ°μ° κ²°κ³Όκ°μ΄ λ²μλ₯Ό λ²μ΄λ κ²½μ°
//μ°λ κΈ°κ° λ°μλμ΄ λ³μμ μ μ₯ κ°λ₯ => μλͺ»λ κ²°κ³Όκ° μΆλ ₯ - μ€ν μ€λ₯
//int num6=num4*num5;
//System.out.println("num6 = "+num6);
long num6=(long)num4*num5;
System.out.println("num6 = "+num6);
double number=1.23456789;
System.out.println("number = "+number);
//μμ«μ 2λ²μ§Έ μ리κΉμ§λ§ μΆλ ₯λλλ‘ λ³ννμ¬ μΆλ ₯
System.out.println("number(λ΄λ¦Ό) = "+(int)(number*100)/100.);
System.out.println("number(λ°μ¬λ¦Ό) = "+(int)(number*100+0.5)/100.);
System.out.println("number(μ¬λ¦Ό) = "+(int)(number*100+0.9)/100.);
}
}
μ μ½λμμ 1), 2) λΆλΆμ μ΄ν΄λ³΄λ©΄..
1) intνμΈ λ³μ numμ μ€μμΈ 12.3μ λ£μΌλ©΄ μλ¬κ° λ°μν¨.
μ€μνμ intνλ³΄λ€ νμ©λ²μκ° ν¬κΈ° λλ¬Έμ μλνλ³ν λμ§ μκΈ° λλ¬Έμ΄λ€.
μ΄ λ, 12.3 μμ intλ₯Ό λΆμ¬μ£Όλ©΄ κ°μ λ‘ νλ³ν μν¬ μ μλ€. => int num=(int)12.3;
κ·ΈλΌ μ μνμΌλ‘ λ°λλ©΄μ numμλ 12κ° μ μ₯λλ€.
2) num1κ³Ό num2κ° λͺ¨λ μ μνμ΄λ―λ‘ num1/num2 = 9 κ° λμ΄μΌ ν¨.
κ·Έλ¬λ μ΄ μ°μ°μ doubleν λ³μμ λμ νλ μλ νλ³νλμ΄ 9.0μΌλ‘ μΆλ ₯λλ€. (int -> doubleμ μλνλ³ν κ°λ₯)
μ°λ¦¬λ 95λ₯Ό 10μΌλ‘ λλλ©΄ 9.5λΌκ³ μκ³ μμ§λ§, μ°μ°κ°μ μ μνμ΄μμΌλ―λ‘ 9κ° λμλ€κ° doubleνμΌλ‘ λ³νλκ±°λ 9.0μ΄ λκ±°λ€.
κ·Έλ°λ° μ΄ μ°μ° μμ 미리 λ³νν νμ μ λͺ μν΄μ£Όλ©΄( => (double)num1/num2 ),
μ°μ°κ°μ΄ μ€μλ‘ λμ€κΈ° λλ¬Έμ μμμ κΉμ§ μ΄λ €μ 9.5κ° λμ¨λ€.
'Backend > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java]μ μ΄λ¬Έ - If~elseλ¬Έ & Switchλ¬Έ (0) | 2023.11.28 |
---|---|
[Java]μ°μ°μ(λ¨ν μ°μ°μ / μ΄ν μ°μ°μ / μΌν μ°μ°μ) (1) | 2023.11.25 |
[Java] λ³μμ λ°μ΄ν° νμ (μλ£ν) (2) | 2023.11.22 |
[Java]Hello World μΆλ ₯νκΈ° (1) | 2023.11.22 |
[Java νκ²½ ꡬμΆ] JDK 17 λ° μ΄ν΄λ¦½μ€(Eclipse) μ€μΉ / νκ²½λ³μ μ€μ (0) | 2023.11.05 |