package com.hidata.hiops.paas.demo;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Random;
/**
* @Description :
* @Date: 2023-10-08 11:32
*/
public class RedPacket extends Thread{
//共享数据
//100块,分成了3个红包
static BigDecimal money = BigDecimal.valueOf(100.0);//红包总金额
static int count = 3;//红包个数
//最小的中奖金额
static final BigDecimal MIN = BigDecimal.valueOf(0.01);
@Override
public void run() {
synchronized (RedPacket.class){
if (count == 0){
//表示红包已经抢完了
System.out.println(getName() + " 没有抢到红包 !" );
}else{
//定义一个变量,表示中奖的金额
BigDecimal prize;
if(count == 1){
//表示此时是最后一个红包
//就无需随机,剩余的钱都是中奖金额
prize = money;
}else{
//获取抽奖范围
//随机的金额范围 99.98 0.01 0.01
double bonds = money.subtract(BigDecimal.valueOf(count-1)).multiply(MIN).doubleValue();
Random r = new Random();
//表示第一次,第二次(随机)
prize = BigDecimal.valueOf(r.nextDouble() * bonds + 0.0001);
}
//小数点保留两位,四舍五入
prize = prize.setScale(2, RoundingMode.HALF_UP);
//从money中,去掉当前中奖的金额
money = money.subtract(prize);
//红包个数-1
count--;
//本次红包的信息进行打印
System.out.println(getName() + " 抢到了 " + prize + " 元");
}
}
}
}
程序猿小D
- 粉丝: 4376
- 资源: 1288
最新资源
- C#做的串口RS232通信程序
- Fpga设计 自动机 Verilog语言,具有真正投币功能,具有远程遥控功能,具有选择功能等 提供完整的代码,仿真,实物
- 永磁同步电机(pmsm,全速度切无位置传感器控制(高速可以是超螺旋滑模) 低速可以是脉振高频方波注入,if开环等仿真模型 切有加权切和双坐标切 单个链接只有一种 可以送单独卡尔曼滤波或者扩张状态
- c#编写2的串口通讯工具
- 基于改进粒子群算法的微电网多目标优化调度 有传统算法和改进算法对比,微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要意义 微电网的发展目标既要满足电力供应的基本需求,又要提
- mes制造执行系统,个人学习整理,仅供参考
- 矿大信息安全与管理工程代码
- 前端分析-2023071100789
- 前端分析-2023071100789
- 华为 ONT使能2.0.exe;r019-allShell
- 智能优化算法:无源网络、求最优乘车舒适度
- MySQL性能优化-存储引擎.html
- ningyaozhongguogeshui
- 一个使用 Python 的 tkinter 库来创建图形界面的出租车计价器源码,包含了基本的输入行程公里数和等待时间,然后计算并显示总费用的功能
- No.1110 基于三菱PLC和组态王组态的注塑机控制系统的 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
- 基于51单片机的多点测温系统 适用5个ds18b20温度传感器,实时检测每个传感器的温度,并显示在LCD1602上面 包括protues仿真+代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈