【问题标题】:Subtract X Percent from Value in Java从 Java 中的值中减去 X 百分比
【发布时间】:2014-08-15 19:39:50
【问题描述】:

我有一个循环计数器,具体取决于计数器的值 我想从 10 中减去 7% 等于计数器的值。例如,如果计数器的值为 1,那么我从 10 中减去 7% 一次。如果计数器的值为 2,我从 10 中减去 7%,得到 9.3,然后从 9.3 中减去 7%。以此类推。

我正在使用以下代码:

double ten = 10.0;
double seven = 0.70;
double score = ten * seven / 100.0;

运行时,我可以轻松地从 10 中减去 7%。但是,我该如何更改它,以便下次运行时会从 9.3 中减去 7%,而不是 10?

【问题讨论】:

  • 如果要减去7%,需要乘以.93

标签: java recursion counter subtraction


【解决方案1】:

随便用

double factor=Math.pow(0.93, counter);
double outputValue = inputValue * factor;

【讨论】:

    【解决方案2】:

    听起来你想要类似的东西,

    double ten = 10.0;
    int seven = 7;
    double score = ten;
    while (Math.round(score) > 0) {
        double startScore = score;
        score = startScore - ((((double) seven) / 100) * startScore);
        System.out.printf("%f - %d%% = %f%n", startScore, seven, score);
    }
    

    输出是

    10.000000 - 7% = 9.300000
    9.300000 - 7% = 8.649000
    8.649000 - 7% = 8.043570
    8.043570 - 7% = 7.480520
    7.480520 - 7% = 6.956884
    6.956884 - 7% = 6.469902
    6.469902 - 7% = 6.017009
    6.017009 - 7% = 5.595818
    5.595818 - 7% = 5.204111
    5.204111 - 7% = 4.839823
    4.839823 - 7% = 4.501035
    4.501035 - 7% = 4.185963
    4.185963 - 7% = 3.892946
    3.892946 - 7% = 3.620439
    3.620439 - 7% = 3.367009
    3.367009 - 7% = 3.131318
    3.131318 - 7% = 2.912126
    2.912126 - 7% = 2.708277
    2.708277 - 7% = 2.518698
    2.518698 - 7% = 2.342389
    2.342389 - 7% = 2.178422
    2.178422 - 7% = 2.025932
    2.025932 - 7% = 1.884117
    ....
    0.510271 - 7% = 0.474552
    

    【讨论】:

      【解决方案3】:
      double score = 10.0;
      score = score * .93;
      

      【讨论】:

      • 您应该更仔细地阅读问题或提供解释它是如何解决问题的。
      【解决方案4】:

      首先0.70不是7%而是70%

      如果你想递归地这样做

      你可以试试这个:

      public static void main(String[] args) {
      System.out.println(subs(10,2));
      } 
      
      public static double subs(double result, int counter) {
          if (counter == 0)
              return result;
          else
              return subs(result - (result * 0.07), --counter);
      }
      

      结果:

      8.649000000000001
      

      以上代码使用递归,将计算它直到计数器达到其 0 值以终止递归并返回结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-18
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多