Пример #1
0
        public void NumModifyTest()
        {
            NumModifyFunctionInfo numModify = new NumModifyFunctionInfo();

            Assert.AreEqual("1.10", numModify.Evaluate(new object[] { 1.111, -2, 0.5 }).ToString());
            Assert.AreEqual("1.15", numModify.Evaluate(new object[] { 1.151, -2, 0.5 }).ToString());
            Assert.AreEqual("1.0", numModify.Evaluate(new object[] { 1.234, -1, 0.5 }).ToString());
            Assert.AreEqual("#VALUE!", numModify.Evaluate(new object[] { "数据错误", -1, 0.5 }).ToString());
            Object obj = numModify.Evaluate(new object[] { 25.21960, -1, 0 });

            Assert.AreEqual("252", (float.Parse(obj.ToString()) * 10).ToString());


            NumericalRound numericalRound = new NumericalRound();

            Assert.AreEqual(1.11, numericalRound.Evaluate(1.114, -2));
            Assert.AreEqual(1.24, numericalRound.Evaluate(1.236, -2));
            Assert.AreEqual(1.5, numericalRound.Evaluate(1.505000, -2));
            Assert.AreEqual(1.51, numericalRound.Evaluate(1.505001, -2));
            Assert.AreEqual(1.52, numericalRound.Evaluate(1.515000, -2));

            /*
             * 60.25 120.50 120 60.0?
             * 60.38 120.76 121 60.5?
             * -60.75 -121.50 -122 -61.0?
             * 14.995
             */
            NumericalRound05 n5 = new NumericalRound05(numericalRound);

            Assert.AreEqual(6.00, n5.Evaluate(6.025, -2));
            Assert.AreEqual(60.5, n5.Evaluate(60.38, -1));
            Assert.AreEqual(-6.0, n5.Evaluate(-6.075, -1));
            Assert.AreEqual(15, n5.Evaluate(14.995, -2));
            Assert.AreEqual(1250, n5.Evaluate(1234, 1));

            /*
             * 830 4150 4.2×103 8.4×102
             * 842 4210 4.2×103 8.4×102
             * -930 -4650 -4.6×103 -9.2×102
             * 12.32   12.38   11.25   11.23
             */
            NumericalRound02 n2 = new NumericalRound02(numericalRound);

            Assert.AreEqual(840, n2.Evaluate(830, 1));
            Assert.AreEqual(840, n2.Evaluate(842, 1));
            Assert.AreEqual(-920, n2.Evaluate(-930, 1));
            Assert.AreEqual(1.06, n2.Evaluate(1.051, -2));
            Assert.AreEqual(840, n2.Evaluate(841, 0));

            Assert.AreEqual(12.4, n2.Evaluate(12.32, -1));
            Assert.AreEqual(12.4, n2.Evaluate(12.38, -1));
            Assert.AreEqual(11.2, n2.Evaluate(11.25, -1));
            Assert.AreEqual(11.2, n2.Evaluate(11.23, -1));
        }
Пример #2
0
 /// <summary>
 /// 获取计算结果值
 /// </summary>
 /// <param name="values">组值项</param>
 /// <returns></returns>
 private string GetValue(object[] values, string columnName, string id)
 {
     if (values != null)
     {
         NumModifyFunctionInfo       numModifyFunctionInfo       = new NumModifyFunctionInfo();
         TongThreeAvergeFunctionInfo tongThreeAvergeFunctionInfo = new TongThreeAvergeFunctionInfo();
         string temp = numModifyFunctionInfo.Evaluate(new object[] { Convert.ToDouble(tongThreeAvergeFunctionInfo.Evaluate(values)) * GetNum(columnName, id), -1, 0 }).ToString();
         sqlStr = string.Format(sbReportStrItem.ToString(), values[0].ToString(), values[1].ToString(), values[2].ToString(), temp, id);
         return(temp);
     }
     return("/");
 }