C#/TIL

2024.11.25 심화 과제 실수의 부정확함 / DividedByZero 조사

서지현 2024. 11. 25. 17:57

 

심화 과제 1. 실수의 부정확함 조사
자료형
자료형 크기
유효숫자
상세설명
float
4 Byte
유효숫자 : 7자리
실수를 표현하는 정밀도가 가장 낮지만, 해당 자료형으로 연산할 경우 연산 속도가 double, decimal 보다는 고속으로 연산할 수 있음
double
8 Byte
유효숫자 : 15 ~ 16자리
C# 프로그래밍 시 실수를 별도의 접미사를 통해 지정하지 않을 경우 기본적으로 C# 컴파일러가 지정하는 실수 자료형이며, 연산 속도가 float 자료형보다는 느리지만, decimal 자료형보다는 고속으로 연산할 수 있음.
decimal
16 Byte
유효숫자 : 28 ~ 29자리
정밀도가 중요하게 요구되는 금융 및 연구, 계측 프로그램에서 실수 연산 시 사용하는 자료형으로 높은 연산 정밀도가 요구되는 프로그램에서는 decimal 자료형의 사용을 권장하고 있으며, 다른 실수 자료형들보다 연산 속도가 가장 늦음.

 

  • 작은 자료형을 더 큰 자료형으로 변환할때는 변수에 저장된 실제 값(데이터)의 손실이 발생되지 않는다.
    • 따라서, 이와같은 경우에는 자동으로 자료형의 변환이 이루어진다.
    • 이러한 자료형 변환을 암시적 형변환이라고 한다.
  • 큰 자료형을 작은 자료형으로 변환할때는 데이터가 손실된다.
    • 이 경우에는 강제 형변환을 시켜주어야 한다.
    • 이러한 자료형 변환을 명시적 형변환이라고 한다.

 

심화 과제 2. DividedByZero 조사

 

정수, 또는 decimal 숫자를 0으로 나누려고 하면 예외가 발생한다. 'DevideByZeroException' 이라고 한다.

예외를 방지하려면, 정수 또는 Decimal 값이 있는 나누기 작업의 분모가 0이 아닌지 확인해야 한다.

 

정수나 Decimal 값을 0으로 나누려 할때 throw되는 예외라고 한다.

 

https://todamfather.tistory.com/37

 

Part1. C# 첫발 내딛기(17. DivideByZeroException과 try~catch문)

이번 포스팅은 0으로 나눌 때 발생하는 Exception과 이를 처리하는 try~catch문에 대해 간단히 정리했습니다. DivideByZeroException과 try~catch문 산술연산에서 흔히하는 실수가 0으로 나누는 것입니다. 이때

todamfather.tistory.com

https://phpdev.tistory.com/17

 

Division by zero 에러발생 원인이 뭔가요?

질문내용 include "../db/db.inc.php"; $Query1= "select mid from maillist where mid>0 order by mid"; $Result1= mysql_query($Query1,$Connection); $Total1 = mysql_num_rows($Result1); $Result = mysql_query("select * from mail1 where mailid>0 order by mailid

phpdev.tistory.com

 

결론은, 정수를 0으로 나눌 수 없기 때문이다.