例如:1.20最大值 最小值0.23 生成30个小数:
1.20
1.20
1.20
1.20
1.19
1.19
1.19
1.18
1.18
1.18
1.18
..........
0.23
0.23
最后一位0.23,每次循环将一个数 输出,怎样实现呢?
c#循环递减小数,生成重复小数和指定数量
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 码老头 2022-04-22 08:26关注
你这问题和我前几天回答的另一个问题有些类似,只不过你的需求是生成小数,而那个问题生成的是整数而已,请参考:
补充示例如下:
// 最小数 var min = 23; // 最大数 var max = 120; // 要生成数的个数 var digits = 300; // 最小出现次数 var minOccurrences = 1; if (digits < max - min + 1) { digits = max - min + 1; Console.WriteLine($"期望数小于实际数,自动补位期望数为{digits}"); } // 生成的数的集合 var numbers = new List<int>(); // 先确保从最大数到最小数递减至少都有一个数 numbers.AddRange(Enumerable.Range(min, max - min + 1).SelectMany(x => Enumerable.Repeat(x, minOccurrences))); // 查看结果 Display(numbers); // 计算需要补位多少个数 var fillGap = digits - (max - min + 1) * minOccurrences; if (fillGap <= 0) { Console.WriteLine("不需要补位"); Console.ReadKey(); return; } Console.WriteLine($"需要补位{fillGap}个数"); var random = new Random(); // 生成补位的数 for (var i = 0; i < fillGap; i++) { numbers.Add(random.Next(min, max + 1)); } Display(numbers); Console.ReadKey(); static void Display(List<int> numbers) { var result = numbers.Select(x => x / 100.00).OrderByDescending(x=>x).ToList(); Console.WriteLine(string.Join(",", result.Select(x=>x.ToString("0.00")))); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 乌班图ip地址配置及远程SSH
- ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
- ¥15 PSPICE制作一个加法器
- ¥15 javaweb项目无法正常跳转
- ¥15 VMBox虚拟机无法访问
- ¥15 skd显示找不到头文件
- ¥15 机器视觉中图片中长度与真实长度的关系
- ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
- ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
- ¥15 java 的protected权限 ,问题在注释里