当前页面: 开发资料首页 → J2SE 专题 → 请教一个算法(脑袋有点晕了,望请高手帮忙)
请教一个算法(脑袋有点晕了,望请高手帮忙)
摘要: 请教一个算法(脑袋有点晕了,望请高手帮忙)
float functionDevUseEfficiencyF = (float) equipIntrinsicFunctionUseNumsInt / equipIntrinsicFunctionNumsInt;
//根据评分标准来计算得分
if (functionDevUseEfficiencyF == 1) {
functionDevelopScore = (60 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.8) {
functionDevelopScore = (48 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.6) {
functionDevelopScore = (36 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.4) {
functionDevelopScore = (24 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.2) {
functionDevelopScore = (12 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#60;= 0.2) {
functionDevelopScore = (0 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
如上所示写法有点问题.我现在是根据functionDevUseEfficiencyF值来计算不同的表达式.
现在的问题是,如果functionDevUseEfficiencyF=0.9,那么我直接运行的是:
if (functionDevUseEfficiencyF -#62;= 0.8) {
functionDevelopScore = (48 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
而下面的-#62;=0.6等等都不需要计算了.
LZ脑袋真晕了 。
functionDevUseEfficiencyF=0.9, 不会执行下面的-#62;=0.6等等的计算。
else if
如果执意用if
就从小到大判断
中午没有休息,脑袋不工作了
考虑了一下,改成如下方式:
// 根据评分标准来计算得分
if (functionDevUseEfficiencyF == 1) {
functionDevelopScore = (60 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.8 -#38;-#38; functionDevUseEfficiencyF -#60; 1) {
functionDevelopScore = (48 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.6 -#38;-#38; functionDevUseEfficiencyF -#60; 0.8) {
functionDevelopScore = (36 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.4 -#38;-#38; functionDevUseEfficiencyF -#60; 0.6) {
functionDevelopScore = (24 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#62;= 0.2 -#38;-#38; functionDevUseEfficiencyF -#60; 0.4) {
functionDevelopScore = (12 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
if (functionDevUseEfficiencyF -#60;= 0.2) {
functionDevelopScore = (0 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
}
不知道这种写法是否最好的方式
!
路过
顶!!
functionDevelopScore = ((int)(functionDevUseEfficiencyF*5) * 12 + equipFunctionDevelopNewAddNumsInt) * 5 / 1000;
为什么不用case语句呀?!