집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 부동 소수점 계산 문제 해결
당신의 산술 능력을 테스트할 계산 문제를 보여 드리겠습니다.
0.1 +0.1 +0.1 - 0.3은 무엇과 같나요?
이렇게 간단한 질문을 하셔도 저를 무시하시나요? 0과 같아야 합니다.
직접계산하면 문제없지만, 컴퓨터로 하면 어떨까요?
기적을 목격할 시간이 왔습니다. 코드를 보세요:
void Main() { var f = 0.1 +0.1 +0.1 -0.3; Console.WriteLine("f=={0}",f); }
실행 결과:
이것은 컴퓨터의 정확성, 컴퓨터의 정밀도 부족 때문입니다. 컴퓨터 내부 저장소 및 작동 등에 대한 설명이 명확하지 않을 수 있지만 다음 해결 방법을 사용하여 해결할 수 있습니다.
void Main() { //var f = 0.1 +0.1 +0.1 -0.3; //Console.WriteLine("f=={0}",f); var f1 = new Decimal(0.1) + new Decimal(0.1) + new Decimal(0.1) - new Decimal(0.3); Console.WriteLine("f1 == {0}",f1); }
작업 결과:
이것은 정상적인 작동 결과입니다.
라라라! ! ! !
위 내용은 C#의 부동 소수점 계산 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!