注册 登录
编程论坛 C++教室

rand()函数如何产生一定范围内的float型数啊

james230932 发布于 2010-03-25 11:09, 2372 次点击
想用rand()产生float型的 10位带2位小数的浮点型数据
3 回复
#2
秀痘魔导士2010-03-25 11:31
最笨的办法   
程序代码:
   
  signed   long   num;  
  int     a,   i;  
   
  randomize();  
   
  a   =   rand();  
  a   %=   0x80;  
  num   =   a;  
   
  for   (i=0;   i<3;   i++)  
  {  
      num   <<=   8;  
      a   =   rand();  
      a   %=   256;  
      num   |=   a;  
  }

long型转float 或者 double 不用说了吧?
#3
james2309322010-03-25 11:37
回复 2楼 秀痘魔导士
我是想用一下的方法产生浮点型数据,但是这样出来的数据有些满足,有些不满足。比如,随机产生的数是90,那么除以10.0后得到的不是9.0而是9
我该如何修改呢

for(i=0;i<20;i++)
        {
            data1[i]=rand()%101;
            data1[i]=data1[i]/(10.00);
        }
#4
秀痘魔导士2010-03-25 13:08
回复 3楼 james230932
cout显示的吗,这是你显示的问题,对于float来说,存储方式只有一种,9.0和9没有区别,只是你输出显示的时候没声明固定小数点后几位而已
1