C++/기타

[C++] μ •μˆ˜λΌλ¦¬μ˜ λ‚˜λˆ—μ…ˆ

Chan Lee 2023. 12. 7. 12:21

C++μ—μ„œ μ •μˆ˜λΌλ¦¬ λ‚˜λˆ—μ…ˆμ„ ν•˜κ²Œ 되면, μ†Œμˆ˜μ  μ΄ν•˜μ˜ μˆ«μžλŠ” λ²„λ €μ§‘λ‹ˆλ‹€.

#include <iostream>
using namespace std;

int main(){
    int num1 = 10;
    int num2 = 3;
    float result = num1 / num2;
    
    cout << "result: " << result << endl;
    // result: 3
    
	return 0;
}

10 / 3 = 3.333333333.. μ΄μ§€λ§Œ, μ •μˆ˜ν˜•μ΄κΈ° λ•Œλ¬Έμ— 3으둜 좜λ ₯λ©λ‹ˆλ‹€.

심지어 κ²°κ³Ό μžλ£Œν˜•μ„ μ‹€μˆ˜ν˜•μΈ double λ˜λŠ” float둜 선언해도 λ™μΌν•©λ‹ˆλ‹€.

 

이럴 λ•ŒλŠ” μ—°μ‚°λ˜λŠ” 두가지 λ³€μˆ˜ 쀑 ν•œκ°€μ§€λ₯Ό μ‹€μˆ˜ν˜•μœΌλ‘œ λ³€κ²½ν•˜λ©΄ ν•΄κ²°λ©λ‹ˆλ‹€.

그것은 static_cast<type>(variable_name) λͺ…λ Ήμ–΄λ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μƒμœ„ μ˜ˆμ‹œμ—μ„œ float result = static_cast<double>(num1) / num2; λ‘œ μ„ μ–Έν–ˆλ‹€λ©΄,

κ²°κ³Όκ°€ μ›ν•˜λ˜λŒ€λ‘œ 3.33333 으둜 λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

 

float result = (double)num1 / num2; 의 방법도 μ‘΄μž¬ν•©λ‹ˆλ‹€λ§Œ,

static_cast의 방법이 μ•ˆμ •μ„± λ©΄μ—μ„œ 더 λ›°μ–΄λ‚˜κΈ° λ•Œλ¬Έμ— 첫번째 방법을 ꢌμž₯ν•©λ‹ˆλ‹€.