OSDN Git Service

Merge branch 'develop' into document
authorhizumiaoba <56146205+hizumiaoba@users.noreply.github.com>
Sun, 17 Apr 2022 22:18:53 +0000 (07:18 +0900)
committerhizumiaoba <56146205+hizumiaoba@users.noreply.github.com>
Sun, 17 Apr 2022 22:18:53 +0000 (07:18 +0900)
1  2 
src/com/ranfa/lib/calc/FanCalc.java
src/com/ranfa/lib/calc/PRPCalc.java

@@@ -76,22 -52,9 +76,22 @@@ public class FanCalc 
        resCorrected = resCorrected.setScale(0,RoundingMode.UP);
        BigDecimal resPremiumed = resCorrected.multiply(premiumPercent);
        resPremiumed = resPremiumed.setScale(0, RoundingMode.UP);
-       return (resPremiumed.compareTo(BigDecimal.ZERO) == 0) || (resPremiumed == null) ? 0 : Integer.parseInt(resPremiumed.toString());
+       return (resPremiumed.compareTo(BigDecimal.ZERO) == 0) ? 0 : Integer.parseInt(resPremiumed.toString());
      }
        
 +      /**
 +       * 計算式は
 +       * 端数切り上げ(スコア*0.001*ルーム補正値*センター、ゲスト効果補正値*プロデュース方針補正値)
 +       * ルーム、センター、ゲスト、プロデュース方針の補正値は百分率。計算時に自動で変換します
 +       * 
 +       * @param score スコア
 +       * @param room ルーム補正値
 +       * @param center センターアイドル補正値
 +       * @param produce プロデュース方針補正値
 +       * @param premium プレミアムパス補正値
 +       * 
 +       * @return 一人当たりの獲得ファン数がラップされているCompletableFuture
 +       */
        public static CompletableFuture<Integer> fanAsync(int score, int room, int center, int produce, int premium) {
                return CompletableFuture.supplyAsync(() -> fan(score, room, center, produce, premium), async);
        }
@@@ -117,16 -58,8 +117,15 @@@ public class PRPCalc 
                return TotalPRP;
        }
        
 +      /**
 +       * 入力されたスコアからPRPを計算します。
 +       * <p>
 +       * PRPは「端数切捨て(スコア×0.001)」になります
 +       * @param score 計算するスコア
 +       * @return 入力から計算したPRP値
 +       */
        public static int calcPRPFromScore(int score) {
                BigDecimal scoreDecimal = BigDecimal.valueOf(score);
-               scoreDecimal.divide(THAUSAND, RoundingMode.DOWN);
-               return scoreDecimal.intValueExact();
+               return scoreDecimal.divide(THAUSAND, RoundingMode.DOWN).intValueExact();
        }
  }