언어/C#

Console.ReadLine(), 자릿 수 문법

MQTT 2023. 8. 12. 03:32

Console.ReadLine()은 무조건 string 타입으로 반환된다. 원하는 입력값이 int거나 다른 타입의 값이라면 예외처리 기반으로 형변환을 해주는 Parse메서드를 사용해야한다.

finally의 경우 try , catch , finally의 finally 부분이며 에러가 발생 시 catch로 넘어가지만 finally는 try와 catch 어디서든 끝에서 실행이 되는 부분이다.

try에서 val이 int가 아닌 문자열로 나오면 FormatException을 예외로 둔 catch 문으로 넘어가게 된다. 그리고 마지막엔 finally로 넘어간다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace CS_Tutorial
{
  internal class Program
  {
    static void Main(string[] args)
    {
      string choice = Console.ReadLine();
      int val;
      try
      {
        val = int.Parse(choice);
        Console.WriteLine(val);
      }
      catch(FormatException)
      {
        Console.WriteLine("잘못된 입력");
      }
      finally {
        Console.WriteLine("끝");
      }
    }
  }
}

int.Parse() : 다른 자료형을 int 자료형으로 변경

long.Parse()

float.Parse()

double.Parse()

ToString(): 숫자를 문자열로 반환

 

ToString 변환 후  int값이 string으로 변환됬는지 확인.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace CS_Tutorial
{
  internal class Program
  {
    static void Main(string[] args)
    {
      int num = 123;
      string s_num = num.ToString();
      Type type = s_num.GetType();
      Console.WriteLine(s_num);
      Console.WriteLine(type.Name);
    }
  }
}

 

소수점 n번째 제한 표시 ToString("Fn") 또는 #.##

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace CS_Tutorial
{
  internal class Program
  {
    static void Main(string[] args)
    {
      double num = 1.21253;
      string s_num = num.ToString("f2"); //소수점 둘째자리 표시.
      Console.WriteLine(s_num);
    }
  }
}

 

#.##  반올림도 해줌

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace CS_Tutorial
{
  internal class Program
  {
    static void Main(string[] args)
    {
      double num = 1.21253;
      string s_num = num.ToString("#.##"); //소수점 둘째자리 표시.
      Console.WriteLine(s_num);
    }
  }
}