1.1 + 0.1 == 1.2가 false인 이유
·
Programming/C C# C++
요약 : 10->2진법 변환 한계로 소수 표현이 제대로 안되어서 연산 후 결과를 비트연산하게되면 다른값이 나올 수 있다. 가끔 소수점 단위 연산을 해야하는 경우가 있다. 예를 들어 0.1초마다 주위를 스캔한다던지, 무게를 0.25초마다 측정한다던지 하는 경우 말이다. 이런 경우 특별한 조치를 취해주지 않는다면 오류가 발생할 가능성이 있다. 예를 들어 이 사진의 경우 1.1 + 0.1이 1.2와 동일한지를 계산하는 코드이다. 상식대로라면 동일하다는 결과가 나와야 하지만 결과는 보다시피 거짓이 나오게 된다.어디가 문제일까?컴퓨터는 숫자를 저장할 때 바이트 단위로 수를 집어넣는다. 실수를 저장할때는 주로 float, double을 사용하는데, float는 4바이트, double은 8바이트라는 차이점이 있을 뿐..
C#) 문자열 입력 시 변수를 추가하는 방법
·
Programming/C C# C++
C#에서 작업을 할 때 String 함수를 사용하는 경우가 있다. 이때 문자열에 변수를 같이 사용하는 경우 입력하는 방식은 크게 세 가지 정도로 나뉜다. string name = "Alice";string greeting = "안녕하세요, " + name + "님!";Console.WriteLine(greeting);  이런 식으로 + 기호를 사용하여 문자열에 변수를 직접적으로 붙이는 방법이 있고, string name = "Alice";string greeting = $"안녕하세요, {name}님!";Console.WriteLine(greeting); $의 문자열 보간을 이용하여 문자열을 만드는 방식이 있고, string name = "Alice";string greeting = string.Forma..
C#과 C++에서의 for, foreach, for루프 사용법
·
Programming/C C# C++
우리가 흔히 사용하는 for문은 다음과 같은 형태로 구성되어 있다.for(초기식; 조건식; 증감식){ 구현부} 가장 기본적인 형태의 for문인데, 시작점에서 값을 증감시키면서 조건식이 성립하는 한 구현부를 반복하는 것이다. while문과도 유사한 형태를 가지고 있고, 실제로 다음과 같이 대체도 가능하다.초기식;while (조건식){ 구현부; 증감식;} C#과 C++에서는 이러한 for문을 조금 변형시켜서 컨테이너 내부를 순회하는 함수를 사용할 수 있다.바로 foreach문과 범위 기반 for문이다. foreach문은 C#에서 사용하는 특수한 형태의 반복문으로, 다음과 같은 형태로 사용된다.List fibNumbers = new() { 0, 1, 1, 2, 3, 5, 8, 13 };foreach..