using System; namespace JiaZhiQuan.Common.Utils { public class AnalyticalFormulaUtils { /// /// 计算增长率, 保留两位小数 /// /// /// /// public static string GrowthRate(decimal currentData, decimal previousData) { // 防止除以零 if (previousData == 0) { return "-"; // 上一次数据为零,无法计算增长率 } if(currentData == previousData) { return "0.00%"; } decimal growthRate = ((currentData - previousData) / previousData) * 100; decimal roundedGrowthRate = Math.Round(growthRate, 2); // 四舍五入保留两位小数 return roundedGrowthRate.ToString("0.00") + "%"; // 格式化为百分比字符串 } /// /// 计算,公式:a / b /// /// /// /// public static string RateStr(int count, int sumCount) { // 防止除以零 if (sumCount == 0) { return "-"; // 上一次数据为零,无法计算 } decimal rate = (decimal)count / sumCount * 100; decimal roundedGrowthRate = Math.Round(rate, 2); // 四舍五入保留两位小数 return roundedGrowthRate.ToString("0.00") + "%"; // 格式化为百分比字符串 } /// /// 计算,公式:a / b /// /// /// /// public static string RateStr(decimal count, decimal sumCount) { // 防止除以零 if (sumCount == 0) { return "-"; // 上一次数据为零,无法计算 } decimal rate = count / sumCount * 100; decimal roundedGrowthRate = Math.Round(rate, 2); // 四舍五入保留两位小数 return roundedGrowthRate.ToString("0.00") + "%"; // 格式化为百分比字符串 } /// /// 计算,公式:a / b /// /// /// /// public static string Rate(int count, int sumCount) { // 防止除以零 if (sumCount == 0) { return "-"; // 上一次数据为零,无法计算 } decimal rate = (decimal)count / sumCount * 100; decimal roundedGrowthRate = Math.Round(rate, 2); // 四舍五入保留两位小数 return roundedGrowthRate.ToString("0.00"); // 格式化为百分比字符串 } /// /// 四舍五入保留两位小数,如果结果是整数,则加上两位小数,否则直接返回格式化后的字符串 /// /// /// public static string FormatNumber(decimal number) { // 使用字符串格式化将数字四舍五入并保留两位小数 string formattedNumber = string.Format("{0:0.00}", Math.Round(number, 2)); // 如果结果是整数,则加上两位小数,否则直接返回格式化后的字符串 if (formattedNumber.EndsWith(".00")) { formattedNumber = formattedNumber.Substring(0, formattedNumber.Length - 3); } return formattedNumber; } } }