From: hizumiaoba <56146205+hizumiaoba@users.noreply.github.com> Date: Sun, 17 Apr 2022 22:18:53 +0000 (+0900) Subject: Merge branch 'develop' into document X-Git-Url: http://git.osdn.net/view?p=delesterandomselector%2FDelesteRandomSelector.git;a=commitdiff_plain;h=d8f427ee5a252c12f81461f9d0340fa4cebf280f Merge branch 'develop' into document --- d8f427ee5a252c12f81461f9d0340fa4cebf280f diff --cc src/com/ranfa/lib/calc/FanCalc.java index a6a1728,cc4c9a0..563ab1d --- a/src/com/ranfa/lib/calc/FanCalc.java +++ b/src/com/ranfa/lib/calc/FanCalc.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 fanAsync(int score, int room, int center, int produce, int premium) { return CompletableFuture.supplyAsync(() -> fan(score, room, center, produce, premium), async); } diff --cc src/com/ranfa/lib/calc/PRPCalc.java index 339ce46,d895a01..d105dfe --- a/src/com/ranfa/lib/calc/PRPCalc.java +++ b/src/com/ranfa/lib/calc/PRPCalc.java @@@ -117,16 -58,8 +117,15 @@@ public class PRPCalc return TotalPRP; } + /** + * 入力されたスコアからPRPを計算します。 + *

+ * 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(); } }