출처 : 연산자 우선순위
0.625 * 2 = 1.250
0.250 * 2 = 0.500
0.500 * 2 = 1.000
정수부 1을 이진법으로 나타낸다 → 1
소수부만 가져온다 → 0.1
소수부가 1로 떨어지거나 똑같은 소수점이 나올때까지 반복한다
0.1 * 2 = 0.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
............ 무한반복
위에서부터 차례대로 가져온다 → 0'001100110011…'
정수부와 소수부를 합친다 → 1.0001100110011…
X.1의 소수는 완벽히 0.1로 표현할 수 없다
이 말은 즉슨, 오차가 발생하므로,
반올림 처리를 하던지, 더 자세한 소수점 까지 나타내주는 decimal 혹은 double을 이용하자
string strA = "10";
string strB = "12.345";
string strC = null;
int ConvertStrA = Convert.ToInt32(strA); // 10
int ConvertStrB = Convert.ToInt32(strB); // FormatException
int ConvertStrC = Convert.ToInt32(strC); // 0으로 반환됨
string strA = "10";
string strB = "12.345";
string strC = null;
int ParseStrA = Int32.Parse(strA); // 10
int ParseStrB = Int32.Parse(strB); // FormatException
int ParseStrC = Int32.Parse(strC); // ArgumentNullException
string strA = "10";
int i; // 반환받고자 하는 자료형의 변수선언
int.TryParse(strA, out i); // x : 10 & true
// 자료형.TryParse(문자열의 변수명, out 반환받고자 하는 자료형의 변수선언);
// out i의 의미는 결과값을 i변수에 저장하여라 라는 의미
// 변환이 성공하면 32비트 부호있는 정수값이 저장되고, 실패하면 0 저장
// 따라서, 제대로 받아졌는지 확인하기 위해선 bool값이 필요하다
string strA = "10";
string strB = "12.345";
string strC = null;
int i;
Int32.TryParse(strA, out i); // true -> result = 10
Int32.TryParse(strB, out i); // false -> result = 0
Int32.TryParse(strC, out i); // false -> result = 0