WinForms윈폼 Flexgrid footer Aggregate overflow exception
페이지 정보
작성자 sjcho 작성일 2020-11-01 10:41 조회 5,112회 댓글 0건본문
첨부파일
관련링크
안녕하세요, Flexgrid footer의 aggregation 기능 중 STD 관련 overflow exception 문의 드립니다.
public Form1() { InitializeComponent(); var dt = new DataTable(); DataColumn column; column = new DataColumn(); column.DataType = typeof(int); column.ColumnName = "id"; dt.Columns.Add(column); column = new DataColumn(); column.DataType = typeof(double); column.ColumnName = "data"; dt.Columns.Add(column); fg.DataSource = dt; DataRow row; row = dt.NewRow(); row["id"] = 0; row["data"] = 3.99999998509884; dt.Rows.Add(row); row = dt.NewRow(); row["id"] = 1; row["data"] = 3.99999998509884; dt.Rows.Add(row); row = dt.NewRow(); row["id"] = 2; row["data"] = 3.99999998509884; dt.Rows.Add(row); fg.Footers.Descriptions.Clear(); fg.Footers.Descriptions.Add(new FooterDescription()); var ad = new AggregateDefinition(); ad.Column = 2; ad.Caption = "{0:n3}"; ad.Aggregate = AggregateEnum.Std; fg.Footers.Descriptions[0].Aggregates.Add(ad); }
위 코드를 실행하면 다음과 같은 overflow exception이 발생합니다.
"처리되지 않은 'System.OverflowException' 형식의 예외가 mscorlib.dll에서 발생했습니다. 추가 정보: 값이 너무 크거나 작아 Decimal 형식에 맞지 않습니다."
아마 data의 3.99999998509884라는 값이 너무 길어서 문제가 발생하는 것 같습니다.
Var enum은 잘 동작하는 것으로 보아, 아마 편차의 sqrt 연산을 하면서 오류가 발생하는 것 같습니다.
혹시 이 문제를 해결할 방법이 없을까요?
댓글목록
등록된 댓글이 없습니다.