Exemplo n.º 1
0
        private bool CountSingeTimes(ConfigurationStatus.TimesCount pTimesInfo, ref List <ConfigurationStatus.TimesData> pTimesList, int pIndex, double pTimes)
        {
            ConfigurationStatus.TimesData item = new ConfigurationStatus.TimesData {
                Expect = pIndex.ToString(),
                Output = CommFunc.ChinaRound((pTimesInfo.Money * pTimesInfo.Number) * pTimes, 2)
            };
            item.TotalOutput = pTimesInfo.TotalOutput + item.Output;
            item.Times       = pTimes;
            item.Input       = CommFunc.ChinaRound(pTimesInfo.Mode * pTimes, 2);
            item.Gain        = CommFunc.ChinaRound(item.Input - item.TotalOutput, 2);
            item.GainRatio   = CommFunc.ChinaRound((item.Gain / item.TotalOutput) * 100.0, 2);
            item.TBCycle     = pTimesInfo.TBCycle;
            pTimesList.Add(item);
            for (int i = 2; i <= item.TBCycle; i++)
            {
                this.CountTBList(pTimesInfo, i, ref pTimesList);
            }
            ConfigurationStatus.TimesData data2 = pTimesList[pTimesList.Count - 1];
            double getTBGain = -1.0;

            if ((pTimesInfo.Type == ConfigurationStatus.TimesType.GainFix) || (pTimesInfo.Type == ConfigurationStatus.TimesType.Sum))
            {
                getTBGain = pTimesInfo.GetTBGain;
                return(data2.Gain >= getTBGain);
            }
            if (pTimesInfo.Type == ConfigurationStatus.TimesType.GainRatio)
            {
                getTBGain = pTimesInfo.GetTBGain;
                return(data2.GainRatio >= getTBGain);
            }
            return(false);
        }
Exemplo n.º 2
0
        private double CountSingeTimes(ConfigurationStatus.TimesCount pTimesInfo, ref List <ConfigurationStatus.TimesData> pTimesList, int pIndex)
        {
            double pNum      = -1.0;
            double getTBGain = -1.0;

            if ((pTimesInfo.Type == ConfigurationStatus.TimesType.GainFix) || (pTimesInfo.Type == ConfigurationStatus.TimesType.Sum))
            {
                getTBGain = pTimesInfo.GetTBGain;
            }
            else if (pTimesInfo.Type == ConfigurationStatus.TimesType.GainRatio)
            {
                getTBGain = pTimesInfo.GetTBGain / 100.0;
            }
            double x    = pTimesInfo.Money * pTimesInfo.Number;
            double num4 = (getTBGain + pTimesInfo.TotalOutput) * Math.Pow(x, (double)(pTimesInfo.TBCycle - 1));
            double num5 = Math.Pow(pTimesInfo.Mode, (double)pTimesInfo.TBCycle) - Math.Pow(x, (double)pTimesInfo.TBCycle);

            if (pTimesInfo.Type == ConfigurationStatus.TimesType.GainRatio)
            {
                num4 = ((getTBGain + 1.0) * pTimesInfo.TotalOutput) * Math.Pow(x, (double)(pTimesInfo.TBCycle - 1));
                num5 = (Math.Pow(pTimesInfo.Mode, (double)pTimesInfo.TBCycle) - Math.Pow(x, (double)pTimesInfo.TBCycle)) - Math.Pow(x, (double)pTimesInfo.TBCycle);
            }
            pNum = num4 / num5;
            pNum = CommFunc.ChinaRound(pNum, 2);
            if (pNum < 0.0)
            {
                return(-1.0);
            }
            if (pNum > 10000000.0)
            {
                return(-1.0);
            }
            if (pNum < pTimesInfo.Start)
            {
                pNum = pTimesInfo.Start;
            }
            while (!this.CountSingeTimes(pTimesInfo, ref pTimesList, pIndex, pNum))
            {
                pNum += 0.01;
                pNum  = CommFunc.ChinaRound(pNum, 2);
                for (int i = 0; i < pTimesInfo.TBCycle; i++)
                {
                    pTimesList.RemoveAt(pTimesList.Count - 1);
                }
            }
            ConfigurationStatus.TimesData data = pTimesList[pTimesList.Count - 1];
            pTimesInfo.TotalOutput = data.TotalOutput;
            if (pTimesInfo.Type == ConfigurationStatus.TimesType.Sum)
            {
                pTimesInfo.SumBegin = data.Gain;
            }
            return(pNum);
        }
Exemplo n.º 3
0
        private void CountTBList(ConfigurationStatus.TimesCount pTimesInfo, int pIndex, ref List <ConfigurationStatus.TimesData> pTimesList)
        {
            ConfigurationStatus.TimesData item = new ConfigurationStatus.TimesData {
                Expect = "",
                Output = pTimesList[pTimesList.Count - 1].Input
            };
            double num = CommFunc.ChinaRound(item.Output / (pTimesInfo.Money * pTimesInfo.Number), 2);

            item.TotalOutput = pTimesList[pTimesList.Count - 1].TotalOutput;
            item.Times       = num;
            item.Input       = CommFunc.ChinaRound(pTimesInfo.Mode * num, 2);
            item.Gain        = CommFunc.ChinaRound(item.Input - item.TotalOutput, 2);
            item.GainRatio   = CommFunc.ChinaRound((item.Gain / item.TotalOutput) * 100.0, 2);
            item.TBCycle     = pTimesInfo.TBCycle;
            pTimesList.Add(item);
        }