日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java红包退款_java 红包规则

發布時間:2024/10/14 java 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java红包退款_java 红包规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List redInfoList = new ArrayList<>();

// 紅包有誤

if(num < REDPACK_MIN_QUANTITY || num > REDPACK_MAX_QUANTITY)

returnredInfoList;//校驗:金額大于0

if(redMoney.compareTo(BigDecimal.ZERO) != 1) {returnredInfoList;

}if(num <= 1) {

redInfoList.add(redMoney);returnredInfoList;

}

Random random= newRandom();for(int i = 0; i < num; i++) {//System.out.println("\n" + (i+1) + "個紅包信息:");

int surplusNum = num - i;//未分配金額紅包數量

BigDecimal curRedMoney =fightLuckRedPacked(redMoney, surplusNum, random, ERROR_INIT_NUM);

redInfoList.add(curRedMoney);

redMoney=redMoney.subtract(curRedMoney);

// MandoAssert.notTrue(redMoney.compareTo(BigDecimal.ZERO)== -1, "紅包金額有誤");//System.out.println("紅包金額:" + curRedMoney + ",剩余:" + redMoney);

}returnredInfoList;

}/*** 拼手氣紅包

*@paramredMoney 紅包金額

*@paramnum 紅包數量

*@paramrandom 隨機數生成對象

*@paramerrorNum 錯誤測試

*@return單個紅包金額*/

private static BigDecimal fightLuckRedPacked(BigDecimal redMoney, int num, Random random, interrorNum) {if(num <= 1) {returnredMoney;

}if(errorNum >ERROR_MAX_NUM) {//隨機金額產生錯誤次數超過上限,返回最小值

returnSINGLE_RED_MIN_MONEY;

}//每個紅包最大金額 = 剩余總金額 / 未分配金額紅包數量 * 紅包放大倍數

int avgRedMaxMoney = redMoney.divide(new BigDecimal(num), ROUNDING_MODE).multiply(TIMES).intValue() *FRACTION_LENGTH;

BigDecimal curRedMoney= new BigDecimal(random.nextInt(avgRedMaxMoney) * 1.00 / FRACTION_LENGTH + "").setScale(SCALE, ROUNDING_MODE);if(curRedMoney.compareTo(SINGLE_RED_MIN_MONEY) == -1) {//紅包最小值判斷:小于最小紅包金額,重新計算

return fightLuckRedPacked(redMoney, num, random, ++errorNum);

}/*if(curRedMoney.compareTo(SINGLE_RED_MAX_MONEY) == 1) {

//紅包最大值判斷

return fightLuckRedPacked(curRedMoney, num, random, ++errorNum);

}*/

//最少保留紅包金額

BigDecimal surplusMinRedMoney = SINGLE_RED_MIN_MONEY.multiply(new BigDecimal(num - 1));//除當前紅包剩余金額

BigDecimal surplusRedMoney =redMoney.subtract(curRedMoney);if(surplusMinRedMoney.compareTo(surplusRedMoney) == 1) {return fightLuckRedPacked(redMoney, num, random, ++errorNum);

}returncurRedMoney;

}public static voidmain(String[] args) {

System.out.println(SplitRedPackes(new BigDecimal("100"), 20));

}

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Java红包退款_java 红包规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。