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.####")); }
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; } }
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; } }