编程学习第1天:decimal类型乘法运算报错求助
Decimal类型乘法运算错误排查与修正
错误原因解析
- 数值类型不兼容:代码里的
0.5、0.7是默认的double类型,而CostAdult是decimal类型,C#不支持不同数值类型直接做乘法运算,必须保证操作数类型一致。 - 未声明变量:
Adult、Child、Senior这三个变量没有定义和赋值,编译器无法识别它们的取值。 - 输出变量错误:计算儿童票、老年票收入时,输出的都是
revenue1(成人票收入),导致结果显示错误。
修正后的代码
Console.Write("Enter the cost of one Adult ticket: $"); decimal CostAdult = Convert.ToDecimal(Console.ReadLine()); // 声明并赋值成人、儿童、老年票的售出数量(示例值可按需修改) int Adult = 10; int Child = 5; int Senior = 3; decimal revenue1 = CostAdult * Adult; Console.WriteLine("You have made " + revenue1.ToString("C") + " for Adult ticket sales!"); Console.ReadLine(); // 用m后缀标记decimal字面量,确保类型匹配 decimal revenue2 = CostAdult * Child * 0.5m; Console.WriteLine("You have made " + revenue2.ToString("C") + " for Child ticket sales!"); Console.ReadLine(); decimal revenue3 = CostAdult * Senior * 0.7m; Console.WriteLine("You have made " + revenue3.ToString("C") + " for Senior ticket sales!"); Console.ReadLine();
关键修改说明
- 补充了
Adult、Child、Senior的变量声明与示例赋值,可替换为实际售票数量。 - 给
0.5、0.7添加m后缀,将其转为decimal类型,解决了不同数值类型无法相乘的问题。 - 修正了输出语句中的变量,确保儿童票、老年票收入对应正确的计算结果。
内容的提问来源于stack exchange,提问作者Brooke Learns To Code
相关产品推荐
相关产品推荐

