当前位置:首页 > PHP

php实现阶梯电费

2026-03-13 14:31:19PHP

阶梯电费计算原理

阶梯电费是指根据用电量的不同区间采用不同的电价标准,通常分为多个档次。例如:

php实现阶梯电费

  • 第一档:0-200度,0.5元/度
  • 第二档:201-400度,0.6元/度
  • 第三档:401度以上,0.8元/度

PHP实现代码

function calculateElectricityBill($units) {
    $bill = 0;

    if ($units <= 200) {
        $bill = $units * 0.5;
    } elseif ($units <= 400) {
        $bill = 200 * 0.5 + ($units - 200) * 0.6;
    } else {
        $bill = 200 * 0.5 + 200 * 0.6 + ($units - 400) * 0.8;
    }

    return $bill;
}

// 示例使用
$units = 450; // 用电量
$totalBill = calculateElectricityBill($units);
echo "用电量:{$units}度,电费总额:{$totalBill}元";

代码优化版本

function calculateTieredElectricityBill($units, $tiers = [
    ['limit' => 200, 'price' => 0.5],
    ['limit' => 400, 'price' => 0.6],
    ['limit' => PHP_INT_MAX, 'price' => 0.8]
]) {
    $bill = 0;
    $remainingUnits = $units;
    $previousLimit = 0;

    foreach ($tiers as $tier) {
        if ($remainingUnits <= 0) break;

        $currentTierUnits = min($remainingUnits, $tier['limit'] - $previousLimit);
        $bill += $currentTierUnits * $tier['price'];
        $remainingUnits -= $currentTierUnits;
        $previousLimit = $tier['limit'];
    }

    return $bill;
}

使用说明

  1. 基础版本直接硬编码了阶梯电费的档次和价格,适合固定费率场景
  2. 优化版本通过参数化配置阶梯档次,可以灵活调整各档阈值和单价
  3. 调用时只需传入用电量即可获得计算结果

测试用例示例

$testCases = [
    ['units' => 100, 'expected' => 50],
    ['units' => 250, 'expected' => 130],
    ['units' => 500, 'expected' => 290]
];

foreach ($testCases as $case) {
    $result = calculateElectricityBill($case['units']);
    echo "用电量:{$case['units']},计算结果:{$result},预期结果:{$case['expected']}\n";
}

标签: 电费阶梯
分享给朋友:

相关文章

vue实现阶梯价格

vue实现阶梯价格

实现阶梯价格的基本思路 阶梯价格通常根据用户购买的数量或金额设定不同的价格区间。在Vue中可以通过计算属性、方法或组件状态管理来实现动态价格计算。 数据模型设计 定义阶梯价格规则数组,每个规则包含区…

vue 实现阶梯价格

vue 实现阶梯价格

阶梯价格实现思路 阶梯价格是指根据购买数量或金额的不同区间,采用不同的单价或折扣。在Vue中实现阶梯价格功能,通常需要结合计算属性、表单绑定和条件判断。 基础数据准备 在Vue组件的data中定义阶…

vue实现阶梯价格

vue实现阶梯价格

实现阶梯价格的基本思路 阶梯价格通常指根据购买数量或金额的不同区间设置不同的单价。在Vue中可以通过计算属性、表单绑定和条件渲染实现这一功能。 数据模型设计 定义阶梯价格规则和当前选择数量: da…