zoukankan      html  css  js  c++  java
  • 红包随机金额

    static void Main(string[] args)
    {
    double totalAmount = 20;
    int num = 10;
    double minAmount = 0.01;
    Random r = new Random();
    for (int i = 1; i < num; i++)
    {
    double safeAmount = (totalAmount - (num - i) * minAmount) / (num - i);
    //double money = new Random().Next(Convert.ToInt32(minAmount * 100), Convert.ToInt32(safeAmount * 100)) / 100;
    double money = NextDouble(r, minAmount * 100, safeAmount * 100) / 100;
    money = Math.Round(money, 2, MidpointRounding.AwayFromZero);
    totalAmount=totalAmount-money;
    totalAmount = Math.Round(totalAmount, 2, MidpointRounding.AwayFromZero);
    Console.WriteLine("第" + i + "个红包:" + money + " 元,余额:" + totalAmount + " 元");
    }
    Console.WriteLine("第" + num + "个红包:" + totalAmount + " 元,余额:0 元");

    Console.ReadKey();
    }

    /// <summary>
    /// 生成设置范围内的Double的随机数
    /// eg:_random.NextDouble(1.5, 2.5)
    /// </summary>
    /// <param name="random">Random</param>
    /// <param name="miniDouble">生成随机数的最大值</param>
    /// <param name="maxiDouble">生成随机数的最小值</param>
    /// <returns>当Random等于NULL的时候返回0;</returns>
    protected static double NextDouble(Random random, double miniDouble, double maxiDouble)
    {
    if (random != null)
    {
    return random.NextDouble() * (maxiDouble - miniDouble) + miniDouble;
    }
    else
    {
    return 0.0d;
    }
    }

  • 相关阅读:
    [原创]利用Browser协议探测内网主机操作系统版本(无需端口无视防火墙)
    [EXP]Microsoft Windows 10 (Build 17134)
    [EXP]Microsoft Windows
    [EXP]Apache Spark
    [EXP]Adobe ColdFusion 2018
    [EXP]ThinkPHP 5.0.23/5.1.31
    [EXP]Cisco RV110W
    [EXP]Huawei Router HG532e
    [EXP]Microsoft Windows CONTACT
    [EXP]Microsoft Windows 10
  • 原文地址:https://www.cnblogs.com/panjuan/p/11946928.html
Copyright © 2011-2022 走看看