C#中百分数不能直接相加,因为百分数表示比例的形式,要先将百分数转换成小数再相加,最后将得到的结果转换成百分数。
using System;
class Program
{
static void Main()
{
string percentage1 = "25%";
string percentage2 = "35%";
decimal decimalValue1, decimalValue2;
// 去除百分号并转换为小数
if (decimal.TryParse(percentage1.TrimEnd('%'), out decimalValue1) &&
decimal.TryParse(percentage2.TrimEnd('%'), out decimalValue2))
{
decimalValue1 /= 100; // 将第一个小数除以 100
decimalValue2 /= 100; // 将第二个小数除以 100
decimal sum = decimalValue1 + decimalValue2;
decimal percentageSum = sum * 100; // 将结果乘以 100,转换回百分数形式
Console.WriteLine(percentageSum.ToString("0.##") + "%"); // 输出相加后的百分数值
}
else
{
Console.WriteLine("无法相加百分数。");
}
}
}
decimal是C#的一种数据类型,可以表示小数他,他的精度比double和float要高,通常在后面跟上m或者M,比如decimal value=3.14M,decimal.TryParse(percentage1.TrimEnd('%'),out decimalValue1)是将百分号去掉并输出到decimalValue1中,比如25%会变成25,返回的是一个bool值,成功为true否则为false。