微信发红包的金额总是不固定的,因此今天特意好奇一下,能不能使用Java代码进行模仿呢?
以下是完整的代码演示,如果不需要其中的数据分析,可以去掉,去掉之后的jdk版本不做过多的要求,没去掉之前,要求是1.8+:
package com.demo;
import java.util.Arrays;
/**
* 大致模仿微信发红包的金额
* @author 小书包
* @date 2018年10月13日13:26:32
*/
public class RedPocket {
/**
* 红包的初始化,每位用户分配到的为平均金额
* @param money 总金额
* @param pocketNum 红包数量
* @param current 当前是第几次
*/
private double[] calcuPocket(double money, int pocketNum) {
if ((pocketNum + 1) * 0.01 >= money) {
System.out.println("红包的最低金额为0.01元");
return null;
}
// 用于存储当前已分配的金额总数
double sum = 0;
double[] pockets = new double[pocketNum];
// 进行红包金额的初始化,每个人给出的金额为平均值
for (int i = 0; i < pocketNum; i++) {
pockets[i] = (double) Math.round((money / pocketNum) * 100) / 100;
// 出现这个判断是为了防止有的数除不掉,发的红包与金额总数不匹配,因此将最后