You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#需求:将计算得到的负总结果转换为0(附现有代码)

需求与代码优化

需求

当计算得出的总结果为负数时,返回0作为最终结果。

原代码

Double Apoints,Bpoints,Cpoints,Dpoints, Majortotalpoints,Totalmisses,Totalpoints;

Majortotalpoints=Apoints+Bpoints+Cpoints+Dpoints-Totalmisses;

Pointshandgun.text= Majortotalpoints.ToString();

Apoints = Convert.ToInt32(MajorApoints.Text)*5;
Bpoints = Convert.ToInt32(MajorBpoints.Text)*4;
Cpoints = Convert.ToInt32(MajorCpoints.Text)*4;
Dpoints = Convert.ToInt32(MajorDpoints.Text)*2;
Totalmisses = Convert.ToInt32(Totalmisshandgun.Text)*10;

问题分析

原代码存在两个核心问题:

  • 变量赋值顺序错误:先计算总分数Majortotalpoints,但此时Apoints、Totalmisses等变量未完成赋值,会导致计算结果异常
  • 未实现"负数返回0"的需求

优化后的代码

// 先计算各分项分数与扣分数值
double Apoints = Convert.ToInt32(MajorApoints.Text) * 5;
double Bpoints = Convert.ToInt32(MajorBpoints.Text) * 4;
double Cpoints = Convert.ToInt32(MajorCpoints.Text) * 4;
double Dpoints = Convert.ToInt32(MajorDpoints.Text) * 2;
double Totalmisses = Convert.ToInt32(Totalmisshandgun.Text) * 10;

// 计算总分数,通过Math.Max确保结果不会为负
double Majortotalpoints = Math.Max(Apoints + Bpoints + Cpoints + Dpoints - Totalmisses, 0);

// 将结果赋值到控件
Pointshandgun.Text = Majortotalpoints.ToString();

说明

  1. 调整赋值顺序:先完成所有分项数据的计算,再统计总分数,保证变量都有有效取值
  2. 处理负数结果:用Math.Max(计算值, 0)实现需求,当计算结果为负时自动返回0
  3. 代码规范修正:变量名首字母小写(符合C#命名规范),补充语句末尾分号,修正控件属性大小写(Text而非text)

内容的提问来源于stack exchange,提问作者darshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:12:20