자료는 아래와 같이 파일로 저장되었을 때 읽어서 합계 내는 방법
1,201001,Kim,1,0,0
1,201002,Kang,0,0,1
class DS2_Dictionary { static void Main(string[] args) { Dictionary<string, Effort> m = new Dictionary<string, Effort>(); string line; StreamReader file = new StreamReader("DS_Sample2.csv"); while ((line = file.ReadLine()) != null) { Effort userEffort = new Effort(); char[] delimiterChars = { ',' }; string[] words = line.Split(delimiterChars); string key = words[1]; if (!m.ContainsKey(key)) { userEffort.setName(words[2]); userEffort.setProjectA(Convert.ToDouble(words[3])); userEffort.setProjectB(Convert.ToDouble(words[4])); userEffort.setProjectC(Convert.ToDouble(words[5])); m.Add(key, userEffort); } else { m[key].addProjectA(Convert.ToDouble(words[3])); m[key].addProjectB(Convert.ToDouble(words[4])); m[key].addProjectC(Convert.ToDouble(words[5])); } } file.Close(); //foreach (KeyValuePair<string, Effort> items in m.OrderBy(x => x.Key)) foreach (KeyValuePair<string, Effort> items in m) { double total = items.Value.getProjectA() + items.Value.getProjectB() + items.Value.getProjectC(); string s = items.Key + "\t" + items.Value.getName() + "\t" + items.Value.getProjectA() + "\t" + items.Value.getProjectB() + "\t" + items.Value.getProjectC() + "\t=>\t" + total; Console.WriteLine(s); } } } public class Effort { private String strName; private double ProjectA; private double ProjectB; private double ProjectC; public String getName() { return strName; } public void setName(String strName) { this.strName = strName; } public double getProjectA() { return ProjectA; } public void setProjectA(double n) { ProjectA = n; } public double getProjectB() { return ProjectB; } public void setProjectB(double n) { ProjectB = n; } public double getProjectC() { return ProjectC; } public void setProjectC(double n) { ProjectC = n; } public void addProjectA(double n) { ProjectA += n; } public void addProjectB(double n) { ProjectB += n; } public void addProjectC(double n) { ProjectC += n; } } |
소수점 2자리 반올림
//Math Class를 이용
double value = 5.123456789;
// 반올림
double result = Math.Round(value, 5);
//결과값 result = "5.12346"
// 올림
result = Math.Ceiling(value);
//결과값 result = "6"
// 내림
result = Math.Truncate(value);
//결과값 result = "5"
'프로그래밍 > C#' 카테고리의 다른 글
프로세스와 쓰레드 샘플 (0) | 2024.05.13 |
---|---|
입력 메시지들을 저장하는 Queue 작성 (0) | 2024.05.13 |
학생 성적표를 List로 오름차순 내림차순 표시 (0) | 2024.05.13 |
특정 파일을 모니터링하여 새로운 라인이 쓰일 때 읽는 코드 (0) | 2024.05.13 |
디렉토리와 파일 명 가져오기 (File IO) (0) | 2024.05.13 |