当前功率因数调整电费,废话不多说,直接上取值代码,把System.out.println改成return就行了
String standard = "160kv_industry"; //功率要求的标准,名字自己起
String strategy = "punishment"; //奖惩制度:只罚不奖(还有超过额定因数减免电费的模式)
int powerFactor = 85; //工厂当月功率因数
int pfs = 0;
switch(standard){
case "160kv_industry": //160kv及以上高压工业标准(0.90)
pfs = 90;
break;
case "110kv_industry": //100kv及以上的其他工业标准(0.85)
pfs = 85;
break;
case "110kv_agriculture": //100kv及以上农业和标准的标准的标准(0.80)
pfs = 80;
break;
default:
break;
}
if(powerFactor>pfs){
if("punishment".equals(strategy)){
System.out.println(0);;
}
double reward = -0.0015;
int max = 5;
if(powerFactor-pfs>=max){
System.out.println(reward*max);
}else{
System.out.println( reward*(powerFactor-pfs));
}
}else{
double punishment1 = 0.005;
double punishment2 = 0.01;
double punishment3 = 0.02;
int grade1=20;
int grade2=25;
if(pfs-powerFactor<=grade1){
System.out.println( punishment1*(pfs-powerFactor));
}else if(pfs-powerFactor<=grade2){
System.out.println(punishment1*grade1+punishment2*(pfs-powerFactor-grade1));
}else{
System.out.println(punishment1*grade1+punishment2*(grade2-grade1)+punishment3*(pfs-powerFactor-grade2));
}
}
输出:0.025
即收取 金额*0.025
的额外费用,如果输出为负数(有奖模式),则为减免费用.