示例#1
0
        public bool pomierzonaPonizejOdchylki(DzialkaEwidencyjna dzialka)
        {
            if (!dzialka.przypisanaDotychczasowa())
            {
                return(false);                                    //Brak działki ewidencyjnej
            }
            DzialkaEwidencyjna dotychczasowa = dzialka.dzialkaDotychczasowa();

            if (dotychczasowa.countPodzielone() > 0)
            {
                return(false);                                     //Działka jest podzielona lub przenumerowana
            }
            long pg = dzialka.powierzchnia().metryKwadratowe();
            long pe = dotychczasowa.powierzchnia().metryKwadratowe();

            if (pg == pe)
            {
                return(false);                                     //Powierzchnia działek jest identyczna
            }
            long   dr         = pg - pe;                           //Różnica powierzchni
            long   drAbsolute = Math.Abs(dr);
            double dp         = 0.0001 * pg + 0.2 * Math.Sqrt(pg); //Dopuszczalna odchyłka
            long   dpRounded  = (long)Math.Round(dp, MidpointRounding.ToEven);

            return(drAbsolute == 1 || drAbsolute == 2 || drAbsolute == 3 || drAbsolute <= dpRounded);
        }