作为我的第一个项目,我正在为我的板球比赛编写一个统计程序。
我遇到的问题是在板球比赛中有 6 个球,保龄球符号是“overs.ballnumber”。例如,如果我打了 4 个球并且在新的 over 中打了 3 个球,则表示法将是 4.3
我需要知道的是,一旦到达第 6 个球,我将如何设置一个循环到下一个的数字。
例如 4.6 overs 应该四舍五入到 5
以下程序演示了如何评估值的小数部分;
public class Test {
public static void main(String[] args) {
double roundedUp=Math.ceil(4.1);
System.out.println(shouldBeRoundedUp(2.2,0.5));
System.out.println(shouldBeRoundedUp(2.7,0.5));
}
public static boolean shouldBeRoundedUp(double value, double roundIfAbove){
double decimalPart=value%1; //this is the modulus operator, or remainder operator
if (decimalPart>roundIfAbove){
return true;
}else{
return false;
}
}
}
听起来您需要一个 Score 课程,如果我理解正确,您希望能够增加球数,当它达到 6 时,它实际上应该重置为 0 并增加 overs。我还假设您可以随时增加轮数并将球号重置为 0。可以修改此对象的字符串表示形式以包含“。” 2个值之间。
public class Score {
int overs = 0;
int ballNumber = 0;
public void increaseBallNumber() {
if (++ballNumber == 6) {
ballNumber = 0;
++overs;
}
}
public void increaseOvers() {
++overs;
ballNumber = 0;
}
public String toString() {
return overs + "." + ballNumber;
}
}