Example #1
0
        public static string BuildMoneyWanFormatString(decimal num, int flag, int decimals)
        {
            decimal d = num / 10000M;

            if (decimals >= 0)
            {
                if (d < 1M)
                {
                    d = MathRule.Round(d, decimals);
                }
                else
                {
                    d = MathRule.Round(d, decimals);
                }
            }
            if (flag == 0)
            {
                if (MathRule.CheckDecimalEqual(0M, d))
                {
                    return("");
                }
            }
            else if ((flag == -1) && MathRule.CheckDecimalEqual(0M, num))
            {
                return("");
            }
            return(d.ToString("#,##0.####"));
        }
Example #2
0
 public void DoApportion()
 {
     try
     {
         if (this.m_tbTotalMoney.Columns.Count == 0)
         {
             throw new Exception("未设置总金额");
         }
         DataRow row = this.m_tbTotalMoney.Rows[0];
         if (!this.m_IsCustomTotalArea)
         {
             this.CalcTotalArea();
         }
         decimal[] numArray = new decimal[this.m_tbTotalMoney.Columns.Count];
         int       count    = this.tbArea.Rows.Count;
         for (int i = 0; i < count; i++)
         {
             DataRow row2  = this.tbArea.Rows[i];
             int     index = -1;
             foreach (DataColumn column in this.m_tbTotalMoney.Columns)
             {
                 index++;
                 decimal num4 = 0M;
                 decimal num5 = ConvertRule.ToDecimal(row[column.ColumnName]);
                 if (!(this.m_IsCustomTotalArea || (i != (count - 1))))
                 {
                     num4 = num5 - numArray[index];
                 }
                 else
                 {
                     decimal num6 = ConvertRule.ToDecimal(row2["Area"]);
                     if ((num6 != 0M) && (this.TotalArea != 0M))
                     {
                         num4 = MathRule.Round(num5 * (num6 / this.TotalArea), this.m_RoundDec);
                     }
                 }
                 row2[column.ColumnName] = num4;
                 numArray[index]         = ConvertRule.ToDecimal(numArray[index]) + num4;
             }
         }
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }
Example #3
0
 public static void CalcPercent(DataRow dr, DataRow drArea)
 {
     try
     {
         if (dr.Table.Columns.Contains("ContractPayPercent"))
         {
             if (ConvertRule.ToDecimal(dr["ContractTotalMoney"]) == 0M)
             {
                 dr["ContractPayPercent"] = DBNull.Value;
             }
             else
             {
                 dr["ContractPayPercent"] = MathRule.Round((ConvertRule.ToDecimal(dr["ContractPay"]) / ConvertRule.ToDecimal(dr["ContractTotalMoney"])) * 100M, 0);
             }
         }
         if (dr.Table.Columns.Contains("BuildingPrice"))
         {
             if ((drArea != null) && (ConvertRule.ToDecimal(drArea["BuildingArea"]) != 0M))
             {
                 dr["BuildingPrice"] = MathRule.Round(ConvertRule.ToDecimal(dr["ContractTotalMoney"]) / ConvertRule.ToDecimal(drArea["BuildingArea"]), 2);
             }
             else
             {
                 dr["BuildingPrice"] = DBNull.Value;
             }
         }
         if (dr.Table.Columns.Contains("HousePrice"))
         {
             if ((drArea != null) && (ConvertRule.ToDecimal(drArea["HouseCount"]) != 0M))
             {
                 dr["HousePrice"] = MathRule.Round(ConvertRule.ToDecimal(dr["ContractTotalMoney"]) / ConvertRule.ToDecimal(drArea["HouseCount"]), 2);
             }
             else
             {
                 dr["HousePrice"] = DBNull.Value;
             }
         }
         if (dr.Table.Columns.Contains("BudgetPrice"))
         {
             if ((drArea != null) && (ConvertRule.ToDecimal(drArea["BuildingArea"]) != 0M))
             {
                 dr["BudgetPrice"] = MathRule.Round(ConvertRule.ToDecimal(dr["BudgetMoney"]) / ConvertRule.ToDecimal(drArea["BuildingArea"]), 2);
             }
             else
             {
                 dr["BudgetPrice"] = DBNull.Value;
             }
         }
         if (dr.Table.Columns.Contains("ContractOriginalPrice"))
         {
             if ((drArea != null) && (ConvertRule.ToDecimal(drArea["BuildingArea"]) != 0M))
             {
                 dr["ContractOriginalPrice"] = MathRule.Round(ConvertRule.ToDecimal(dr["ContractMoney"]) / ConvertRule.ToDecimal(drArea["BuildingArea"]), 2);
             }
             else
             {
                 dr["ContractOriginalPrice"] = DBNull.Value;
             }
         }
     }
     catch (Exception exception)
     {
         throw exception;
     }
 }