例如: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 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100