크기가 다른 부동 소수점 형변환

  • float, double 은 소수를 2진수로 바구어 메모리에 보관
  • 각 형식에 대한 변화를 주려면 10진수 복원 후 다시 2진수로 변환해야함
  • 다만 이 과정에서 2진수로 표현하는 소수가 완전하지 않아 (무한소수) 정밀성이 떨어질 수 있음
    private static void FloatConversion()  
    {  
      float a = 69.6875f;  
      WriteLine("a: {0}",a);  
    	  
      double b = a;  
      WriteLine("b: {0}", b);  
      WriteLine("69.6875 == b:{0}", 69.6875 == b);  
    	  
      float x = 0.1f;  
      WriteLine("x: {0}",x);  
      double y = x;  
      WriteLine("y: {0}",y);  
      WriteLine("0.1 == y : {0}", 0.1 == y);  
    }
    

부호에 따른 형변환

private static void SignConversion()  
{  
	int a = 500;  
	WriteLine($"a: {a}");  
	  
	uint b = (uint)a;  
	WriteLine($"b: {b}");  
	  
	int x = -30;  
	WriteLine($"x: {x}");  
	  
	uint y = (uint)x;  
	WriteLine($"y: {y}");  
}