C#/Problems
1. 정수값끼리 나누었는데 0이 나올때
dev_sr
2020. 4. 5. 00:29
1. 문제
과제를 하던 중에 변수 2개를 이용하여
50% 라고 출력을 하고 싶어서 연산을 했는데 0만 나왔다.
1
2
3
4
5
|
//50% 출력하기
int a=5;
int b=10;
Console.WriteLine(a/b*100+"%");
|
2. 해결
두 int형식 변수 중 하나를 float로 바꾼다.
1
2
3
4
5
|
//50% 출력하기
int a=5;
float b=10f;
Console.WriteLine(a/b*100+"%");;
|
5/10 의 값은 0.5가 나오는데
둘다 정수형일 경우 0.5가 0이 되어서 0만 출력된다.
Ms Docs에 따르면 정수형식과 float, double, decimal은 혼합하여 연산이 가능하다.
float, double은 정수와 연산할 경우 암시적으로 부동 소수점 형식 중 하나로 변환된다.
따라서 두 변수 중 하나만 float나 double형식으로 변환하면
소수점 형식으로 변환되어 원하는 값 50%가 나온다.
참고: 부동 소수점 숫자형식, MS Docs