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

如何使用自定义count函数返回值进行后续KWH电费相关计算

用户最多可输入3块电表的起止读数,应用将计算每块电表的用电量(KWH)并核算总KWH电费,需兼容“电表跳数(meter roll)”逻辑:4位表盘电表最大读数为9999,当电表计数从9999走到0000后重新正常计数时即为跳数,当结束读数小于起始读数时判定电表已跳数,需确保应用可以正确累计跳数电表的用电量。

问题解决

1. 先修正逻辑错误的count函数

你当前写的count函数存在以下问题:

  • 入参dialcount被直接覆盖为固定值4,入参完全失效
  • while循环逻辑错误,会触发死循环
  • 没有实现电表跳数的处理逻辑,直接相减会得到错误的负数用电量

修正后的代码如下:

// 计算单块电表用电量,自动处理跳数
private double CalcSingleMeterUsage(int start, int end)
{
    if (end >= start)
    {
        return end - start;
    }
    // 触发跳数逻辑,4位表最大是9999
    return (9999 - start) + end + 1;
}

// 计算总用电量
public double CountTotalKWH(int meter1s, int meter1e, int meter2s, int meter2e, int meter3s, int meter3e)
{
    double meter1 = CalcSingleMeterUsage(meter1s, meter1e);
    double meter2 = CalcSingleMeterUsage(meter2s, meter2e);
    double meter3 = CalcSingleMeterUsage(meter3s, meter3e);
    return meter1 + meter2 + meter3;
}

2. 调用函数获取返回值完成电费核算

调用有返回值的函数时,只需要声明对应类型的变量,把函数调用的结果赋值给这个变量,后续就可以正常使用这个变量做运算。修改后的点击事件代码如下:

private void btnRecal_Click(object sender, EventArgs e)
{
    BindFromUI();

    // calculate KWH and meter charge
    if (goodConvert) {
        // 调用CountTotalKWH函数,用变量接收返回的总用电量
        double totalKWH = CountTotalKWH(meter1s, meter1e, meter2s, meter2e, meter3s, meter3e);
        // 直接用拿到的totalKWH计算电费即可
        chargeKWH = totalKWH * KWH_Usage;
        meter_charge = meterCount * Meter_Charge;
    }
    else {
        errorMessage = "";
    }

    BindToUI();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:02