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;
    }
    }

  • 相关阅读:
    Oracle:SQL语句--撤销用户权限
    Oracle:SQL语句--给用户赋权限
    RSTP端口状态迁移过程详解
    LSB算法分析与实现
    工厂方法模式
    Ceasar
    区域性名称和标识符
    Packet Tracer网络模拟实验实记
    H3C-OSPF
    H3C-RIP
  • 原文地址:https://www.cnblogs.com/panjuan/p/11946928.html
Copyright © 2011-2022 走看看