Im 현재 Code Complete, Steve McConnell, 특히 부동 소수점 수 295 페이지를 읽는 중입니다. 인쇄 증분 0.1 in C#
는 다음 코드 실행시 : 0.9 1.0 수가 다른 I가 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 에서 인쇄를 얻었다 double nominal = 1.0;
double sum = 0.0;
for (int i = 0; i < 10; i++)
{
sum += 0.1;
Console.WriteLine("sum: " + sum.ToString());
}
if (equals(nominal,sum))
{
Console.WriteLine("Numbers are the same");
}
else
{
Console.WriteLine("Numbers are different");
}
을
어째서 나는 ' 일어날 것으로 예상되는 출력을 얻지 못합니까? 예 : 0.1 0.2 0.30000000000000004 0.4 0.5 0.6 0.7 0.79999999999999999 0.89999999999999999 0.99999999999999999 숫자 내가 문자열로 이중에서 암시 적 변환을 수행 할 때
는 C#을 반올림 번호가 다르다? 나는 응용 프로그램을 디버깅하고 for 루프를 통해 단계를 수행 할 때 반복 종료되지 않는 십진수를 볼 수 있기 때문에 그렇게 생각합니다. 어떻게 생각해? 나는 옳은가 틀린가?
감사합니다. 나는 당신에게 주어진 결과물로 매우 정확해야했습니다. 내가 0.79999999999999999와 같은 긴 십진수를 주었을 때, 나는 사용하고 있던 자리수에주의를 기울이지 않았다. – burnt1ce