生成等长随机数值的方法
2021/12/12 6:17:19
本文主要是介绍生成等长随机数值的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
需要根据输入字符串,生成一个等长的随机数值,网上查了一下,没发现比较直接的方法。
自己写了一个,为便于理解,加了一些中间过程的变量。
虽然可以实现目的,但觉得有些繁琐,执行效率也不好,故贴于此,请高手指教。
/// <summary> /// 数值字符串转换成等长的随机数 /// </summary> /// <param name="inputStr">输入字符串</param> /// <returns></returns> private static string StringConvertRandomDouble(string inputStr) { if (inputStr.Length > 17) { return inputStr;//Double类型超出17位长度,需用科学计数法表示。转换会抛出异常。 } string top = ""; int inputStrLenght;//输入字符串原始长度 if (double.TryParse(inputStr, out double newDouble))//判断能否转换位double类型 { int IntegerLength;//整数部分长度 double tempDouble = Math.Floor(newDouble);//向下取整,可能有符号,下面判断处理 if (tempDouble < 0) { IntegerLength = tempDouble.ToString().Length - 1; top = "-"; inputStrLenght = inputStr.Length - 1; } else { IntegerLength = tempDouble.ToString().Length; inputStrLenght = inputStr.Length; } string a = "1".PadRight(IntegerLength, '0');//得到等长 100 string b = "9".PadLeft(IntegerLength, '9');//得到等长的 999 double minDouble = Convert.ToDouble(a); double maxDouble = Convert.ToDouble(b); Random _random = new Random(); double outputDouble; if (_random != null) { //在指定的范围内取随机的 Double outputDouble = _random.NextDouble() * (maxDouble - minDouble) + minDouble; } else { outputDouble = 0.0d; } return top + outputDouble.ToString().Substring(0, inputStrLenght); } else { return inputStr; } }
这篇关于生成等长随机数值的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?
- 2025-01-10实现精准执行:团队协作新方法
- 2025-01-10如何使用工具提升活动策划团队的工作效率?几个必备工具推荐
- 2025-01-10WiX 标签使用介绍:打造专业安装程序的利器