【问题标题】:How to system know that one over of cricket has 6 balls (Calculation) in Android在Android中如何系统知道一个板球有6个球(计算)
【发布时间】:2017-09-24 02:37:26
【问题描述】:

我正在开发一个板球应用程序,但我在与 overs 合作时遇到了问题。我们都知道,无论在计算器里做什么计算都是用 10 来完成的。

例如:

如果总超数:20,当前超过 2.1 我想计算剩余的次数。

所以公式是:(总超额 - 当前超额)

答案应该是 17.5

但我得到的答案是 17.9

运行速率和所需运行速率发生相同的事情。

我实际上做错了什么?任何人都有一些算法或公式或任何可以像这样转换转换的代码。

谢谢。

【问题讨论】:

  • Android 是一个操作系统,您使用的是什么语言? C++、C# 还是其他?
  • 您期望以 10 为底的算术像板球规则一样运行 - 这就是您做错的事情。
  • @Neil 我正在使用 Java
  • What I'm actually doing wrong? 您没有粘贴代码和错误日志。在这里询问算法在概念上是错误的。

标签: android algorithm arithmetic-expressions


【解决方案1】:
float total=total-0.4;
float current;
float remaining=total-current;

【讨论】:

  • 它正在返回我的旧答案
  • 再试一次.. 让 total=20, current=2.1 so m=0.1 and remaning=(20-2)-0.5=17.5
  • 如果总计 = 20 且当前 = 20,则上面给出 -0.6 剩余。超过 1 后得到 18.4
  • 一场比赛只有 6 个球。所以最大电流可能是 19.6
  • 不,最多是 20 次,没有人说 19 次和 6 球。
【解决方案2】:
public class T {
    public static void main(String[] args) {
        int numberOfBalls=34;
        String round = String.valueOf(Math.round(numberOfBalls / 6));
        String mod=String.valueOf(numberOfBalls%6);
        double numberOfOvers=Double.valueOf(round+"."+mod);
        System.out.println(numberOfOvers);
   }
}

【讨论】:

    【解决方案3】:

    这将帮助你:

     public float GetOversLeft(){
    
    
            var tempOversLeft = TotalOvers % 6;
            var totalBallsLeftInANOver = ((TotalOVers - currentBallNumber) % 6) /10;
    
    
             return tempOversLeft + totalBallsLeftInANOver;
    
    
        }
    
        public int GetTotalBallsLeftInOver(){
    
        var tempBallsLeft=  (int) (  ((TotalBallsInMatch - currentBallNumber)%6));
        if(tempBallsLeft== 0){
            tempBallsLeft= 6;
        }
    
        return tempBallsLeft;
    
    
    
    
        }
    

    【讨论】:

      【解决方案4】:

      从交付的总球数中恢复过来

      public function calculation_over()
      {
          $balls = 80;
          $balls2 = 80;
          $balls -= $balls % 6;
          $total_overs = $balls / 6;
          $f = $balls2 % 6;
          echo $total_overs_calculated = (float)$total_overs.'.'.$f;
      }
      

      如果交付的总球数是 80 个球,那么首先我们必须使其可被 6 整除,然后我们从 ($balls -= $balls % 6;) 中得到 78,然后我们将它除以 6,然后我们得到 13 表示 13 以上然后我们必须计算 80 个球的模数,那么这个表达式是使用 $f = $balls2 % 6;对于模块,然后我得到 2 然后我将值 13 和 2 与小数点分隔符 = 13.2(overs) ((float)$total_overs.'.'.$f;) 你可以在 ex->43,44 上测试它, 94,110

      【讨论】:

      • 如果交付的总球数是 80 个球,那么首先我们必须使其可被 6 整除,然后我们从 ($balls -= $balls % 6;) 得到 78,然后我们将除以 6 然后我们得到 13 表示超过 13,然后我们必须计算 80 个球的模块,然后这个表达式是 use $f = $balls2 % 6;对于模块,然后我得到 2 然后我将值 13 和 2 与小数点分隔符 = 13.2(overs) ((float)$total_overs.'.'.$f;) 你可以在 ex->43,44 上测试它, 94,110
      • 在帖子中未发表评论。
      【解决方案5】:

      计算投球数的简单公式

      =(FLOOR({overs})*6)+MOD({overs},FLOOR({overs}))*10
      

      示例: Overs = 96.2

      结果: 球数 = 578

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-29
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多