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

  • 相关阅读:
    Rancher安装
    JDK8日期时间对象
    String经典面试题
    String
    单例模式
    多线程
    接口
    代码块
    内存吞金兽(Elasticsearch)的那些事儿 -- 常见问题痛点及解决方案
    内存吞金兽(Elasticsearch)的那些事儿 -- 写入&检索原理
  • 原文地址:https://www.cnblogs.com/panjuan/p/11946928.html
Copyright © 2011-2022 走看看