[C#] 3일차 ( Format과 연산자 처리)C#/C#200제2021. 1. 18. 11:58
Table of Contents
11. 형식지정자를 사용한는 String.Format()과 ToString
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A011_FormatSpecifier
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0:N2}", 1234.5678);
Console.WriteLine("{0:D8}", 1234);
Console.WriteLine("{0:F3}", 1234.56);
Console.WriteLine("{0:8}", 1234);
Console.WriteLine("{0,-8}", 1234);
Console.WriteLine("-------------------------");
string s;
s = string.Format("{0:N2}", 1234.5678);
Console.WriteLine(s);
s = string.Format("{0:D8}", 1234);
Console.WriteLine(s);
s = string.Format("{0:F3}", 1234.56);
Console.WriteLine(s);
Console.WriteLine("-------------------------");
Console.WriteLine(1234.5678.ToString("N2"));
Console.WriteLine(1234.ToString("D8"));
Console.WriteLine(1234.56.ToString("F3"));
Console.WriteLine("-------------------------");
float num;
num = 1234.5678f;
Console.WriteLine("{0:#.##}", num);
Console.WriteLine("{0:0,0.00}", num);
Console.WriteLine("{0:#,#.##}", num);
Console.WriteLine("{0:000000.00}", num);
Console.WriteLine("{0:#,#.##;(#,#.##);zero}", 1234.567);
Console.WriteLine("{0:#,#.##;(#,#.##);zero}", -1234.567);
Console.WriteLine("{0:#,#.##;(#,#.##);zero}", 0);
}
}
}
12. 실수를 표현하는 float, double, decimal
구분 | 설명 |
정밀도 | float : 7자리 double : 15~16자리 decimal : 28~29자리 (금융권에서는 decimal을 사용하도록 권장) |
표현할 수 있는 수의 범위 | float, double은 decimal보다 더 크거나 더 작은 값을 표현 할 수 있어 과학적 계산이 필요한 곳에 적합 |
저장공간의 크기과 계산속도 | float : 4byte double : 8byte decimal : 16byte 속도도 float이 제일 빠름 |
접미사 | 실수는 별도 표현없으면 double로 인식 숫자뒤에 f, d, m을 붙여 명시함 |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A012_FloatDoubleDecimal
{
class Program
{
static void Main(string[] args)
{
float flt = 1F / 3;
double dbl = 1D / 3;
decimal dcm = 1M / 3;
Console.WriteLine("float : {0}\ndouble : {1}\ndecimal : {2}", flt, dbl, dcm);
Console.WriteLine("-------------------");
Console.WriteLine("float : {0}byte\ndouble : {1}byte\ndecimal : {2}byte", sizeof(float), sizeof(double), sizeof(decimal));
Console.WriteLine("-------------------");
Console.WriteLine("float : {0}~{1}", float.MinValue, float.MaxValue);
Console.WriteLine("double : {0}~{1}", double.MinValue, double.MaxValue);
Console.WriteLine("decimal : {0}~{1}", decimal.MinValue, decimal.MaxValue);
}
}
}
13. 캐스팅과 자료형 변환
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A013_TypeConversion
{
class Program
{
static void Main(string[] args)
{
int num = 2147483647;
long bigNum = num; // 암시적 형변환
Console.WriteLine(bigNum);
double x = 1234.5;
int a;
a = (int)x; // 명시적 형변환(캐스팅)
Console.WriteLine(a);
}
}
}
14. 문자열과 숫자의 변환
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A014_StringToNumber
{
class Program
{
static void Main(string[] args)
{
string input;
int value;
Console.WriteLine("1. int로 변환할 문자열을 입력하세요 : ");
input = Console.ReadLine();
bool result = Int32.TryParse(input, out value);
if (!result)
Console.WriteLine("'{0}'는 int로 변환될 수 없습니다.\n", input);
else
Console.WriteLine("int '{0}'로 변환 되었습니다. \n", input);
Console.WriteLine("2. double로 변환할 문자열을 입력하세요 : ");
input = Console.ReadLine();
try
{
double m = Double.Parse(input);
// double m = Convert.ToDouble(input);
Console.WriteLine("double '{0}'로 변환되었습니다.", m);
}
catch(FormatException e)
{
Console.WriteLine(e.Message);
}
}
}
}
TryParse는 return이 bool형이라 if문 판단이 가능
Parse는 return이 에러(예외)가 되기때문에 try,catch문으로 예외판단
15. Convert 클래스와 2진수, 8진수, 10진수 16진수 출력
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A015_Convert
{
class Program
{
static void Main(string[] args)
{
int x, y;
Console.WriteLine("첫 번째 숫자를 입력하세요 : ");
x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("두 번째 숫자를 입력하세요 : ");
y = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0} + {1} = {2}", x, y, x + y);
// 2진수, 8진수, 10진수, 16진수로 출력하기
short value = short.MaxValue; // Int16.MaxValue
Console.WriteLine("\n2진수, 8진수, 10진수, 16진수로 출력하기");
int baseNum = 2;
string s = Convert.ToString(value, baseNum);
int i = Convert.ToInt32(s, baseNum);
Console.WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
baseNum = 8;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
Console.WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
baseNum = 10;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
Console.WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
baseNum = 16;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
Console.WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
}
}
}
16. C#의 연산자과 식
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A016_Operators
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(3 + 4 * 5);
Console.WriteLine((3 + 4) * 5);
Console.WriteLine(3 * 4 / 5);
Console.WriteLine(4 / 5 * 3);
int a = 10, b = 20, c;
Console.WriteLine(c = a + b);
}
}
}
17. 산술연산자
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A017_ArithmeticOperators
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("정수의 계산");
Console.WriteLine(123 + 45);
Console.WriteLine(123 - 45);
Console.WriteLine(123 * 45);
Console.WriteLine(123 / 45);
Console.WriteLine(123 % 45);
Console.WriteLine("실수의 계산");
Console.WriteLine(123.45 + 67.89);
Console.WriteLine(123.45 - 67.89);
Console.WriteLine(123.45 * 67.89);
Console.WriteLine(123.45 / 67.89);
Console.WriteLine(123.45 % 67.89);
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 6일차 - 32. 열거형 enum (0) | 2021.01.21 |
---|---|
[C#] 5일차 (문자, 문자열 정리) (0) | 2021.01.20 |
[C#] 4일차 ( try~catch문, 각종 연산자 ) (0) | 2021.01.19 |
[C#] 2일차 (변수 선언 및 자료형, Console.WriteLine메소드) (0) | 2021.01.17 |
[C#] 1일차 (간단한 C#컴파일, 프로젝트만들기, 입출력) (0) | 2021.01.15 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!