【问题标题】:How can I use the return value in my next calculation如何在下一次计算中使用返回值
【发布时间】:2022-01-07 10:59:14
【问题描述】:

用户输入最多三米的开始和结束仪表读数。该应用程序将计算用于每个电表的 KWH 并计算总 KWH 费用。允许“米卷”。四个千分表的最大读数为 9999。当它从 9999 到 0000 计算千瓦时,然后又开始正常计数时,一个仪表“滚动”。当结束读数小于开始读数时,仪表已滚动。确保您的应用程序为滚动电表正确累积 KWH。

下面是我的代码我不确定如何在我的下一个计算中使用返回值这里是 cal 计算chargeKWH = totalKWH * KWH_Usage;

public double count(int dialcount)
{
    dialcount = 4;

    while (dialcount > 0000 || dialcount < 9999) {

        totalKWH = meter1 + meter2 + meter3;
        dialcount++;
    }

    return totalKWH;
}

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

    // calculate KWH and meter charge
    if (goodConvert) {

        meter1 = meter1e - meter1s;
        meter2 = meter2e - meter2s;
        meter3 = meter3e - meter3s;
        totalKWH = meter1 + meter2 + meter3;
        chargeKWH = totalKWH * KWH_Usage;
        meter_charge = meterCount * Meter_Charge;
    }
    else {
        errorMessage = "";
    }

    BindToUI();
}

【问题讨论】:

  • 您需要为每个仪表调用您的函数,然后添加结果。像meter_charge = count(meter1) + count(meter2) + count(meter3); 这样的东西。但我认为您还有其他问题需要处理。

标签: c# oop


【解决方案1】:

摆脱你的count() 函数。

根据结束值是大于还是小于起始值,您需要执行两种不同的计算:

  • 如果结束值大于或等于开始值,那么你 只需从结束值中减去开始值即可。
  • 如果结束值小于起始值,用9999减去起始值,再加上结束值;从而通过 9999 处理“米卷”。

因此,对于meter1,您可以使用简单的if/else 语句来运行其中一个计算,无论哪个合适:

if (meter1e >= meter1s) {
    meter1 = meter1e - meter1s;
}
else {
    meter1 = (9999 - meter1s) + meter1e;
}

你会为另外两个米重复这个结构,米2和米3。

之后你会像以前一样进行计算:

totalKWH = meter1 + meter2 + meter3;
chargeKWH = totalKWH * KWH_Usage;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    相关资源
    最近更新 更多