在使用Math.random()生成6位随机数遇到的问题,并成功得到6位随机数
2016-09-01 09:31
666 查看
最近在做卫生局的一个考务网时需要实现一个短信发送验证码的功能,因此就必须使用到随机生成6位验证码的功能,开始觉的简单的,随便写了个 int i=(int)(Math.random()*1000000+100000); String messageCode = String.valueOf(i); 然后测试发送了下,是发送了6位随机数,以为是正确的,但在之后的反复测试中忽然发现这个验证码有时会出现7位的,然后去看代码感觉没问题啊, Math.random()是产生0.0到1.0之间的doule的随机数的,感觉不会错啊 没办法测试下,写个main函数生成100个随机数看看 复制代码 public static void main(String[] args) { for(int j = 0; j< 100; j++){ int i=(int)(Math.random()*1000000+100000); String messageCode = String.valueOf(i); System.out.println(messageCode); } } 复制代码 果然发现生成的随机数中,既有6位又有7位,奇怪,怎么跟自己的意愿不一样呢,接着,直接测试了下 public static void main(String[] args) { for(int j = 0; j< 100; j++){ System.out.println((Math.random())); } } 生成的随机数尽然有0.0XXX的,我顿时迷惑了,赶快查了下文档,终于有所体会了,产生的随机数应该是0.0000...-1.00000...之间的, 开始误认为是第一位非0的是就是位于小数点的后一位 然后就只能根据测试的结果来重新信了个方法,测试了下确实是可以了 public static void main(String[] args) { for(int j = 0; j< 100; j++){ System.out.println((int)((Math.random()*9+1)*100000)); } }
相关文章推荐
- 在使用Math.random()生成6位随机数遇到的问题,并成功得到6位随机数
- 使用Math.random生成随机数
- Math.random() 得到6位随机数
- Java 基础 分别使用Math和Random生成随机数
- 不使用Math.random方法生成随机数(随机数生成器)
- java 使用Random和Math.random()去生成10以内的随机数
- dbms_random.value 随机数问题 & 用DBMS_RANDOM生成文本和日期值
- java常用类解析十一:Random类(Math.random())生成指定范围的随机数或字符
- java常用类解析十一:Random类(Math.random())生成指定范围的随机数或字符
- 不使用Math.random实现随机数。
- 利用Math.Random()方法来生成随机数。(转)
- VS2012 使用MySql的API函数连接数据库(成功), 以及使用mysql-connector-c++-1.1.3遇到的问题!
- 使用curl抓取网页遇到HTTP跳转时得到多个HTTP头部的问题
- 使用自动生成Mipmap时遇到的一些问题
- 别再用JS里面的Math.random()方法生成随机数
- 使用javac编译java文件和使用javah生成C/C++头文件 遇到找不到类的问题
- [项目过程中所遇到的各种问题记录]编辑器篇——使用FCKeditor生成静态分页HTML
- [项目过程中所遇到的各种问题记录]编辑器篇——使用FCKeditor生成静态分页HTML
- 使用designer-qt3设计界面,生成对应.h和.cpp文件时遇到的问题
- java常用类解析十一:Random类(Math.random())生成指定范围的随机数或字符