예제 #1
0
        public static Dictionary <int, RateList> CreateDictionary()
        {
            var Rate       = new RateList();
            var Dictionary = new Dictionary <int, RateList>();

            Dictionary.Add(0, new RateList {
                StartRange = 0, EndRange = 540000, rate = 0.05m,
            });
            Dictionary.Add(1, new RateList {
                StartRange = 540000, EndRange = 1210000, rate = 0.12m
            });
            Dictionary.Add(2, new RateList {
                StartRange = 1210000, EndRange = 2420000, rate = 0.2m
            });
            Dictionary.Add(3, new RateList {
                StartRange = 2420000, EndRange = 4530000, rate = 0.3m
            });
            Dictionary.Add(4, new RateList {
                StartRange = 4530000, EndRange = 10310000, rate = 0.4m
            });
            Dictionary.Add(5, new RateList {
                StartRange = 10310000, EndRange = 2147483647, rate = 0.5m
            });
            return(Dictionary);
        }
예제 #2
0
        public static decimal CaculateRate(decimal money)
        {
            var list = RateList.CreateDictionary();
            var tmp  = list.Where(x => x.Value.StartRange < money);
            int key  = -1;

            foreach (var i in tmp)
            {
                key++;
            }
            decimal sum = 0;

            if (key != 0)
            {
                for (var i = key; i > 0; i--)
                {
                    sum += (list[i - 1].EndRange - list[i - 1].StartRange) * list[i - 1].rate;
                }
            }
            sum += (money - list[key].StartRange) * list[key].rate;
            return(sum);
        }