标题:rand()函数如何产生一定范围内的float型数啊
只看楼主
james230932
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:162
专家分:629
注 册:2008-1-20
结帖率:91.67%
已结贴  问题点数:10 回复次数:3 
rand()函数如何产生一定范围内的float型数啊
想用rand()产生float型的 10位带2位小数的浮点型数据
搜索更多相关主题的帖子: 函数 rand float 范围 
2010-03-25 11:09
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
得分:10 
最笨的办法   
程序代码:
   
  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 不用说了吧?
2010-03-25 11:31
james230932
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:162
专家分:629
注 册:2008-1-20
得分:0 
回复 2楼 秀痘魔导士
我是想用一下的方法产生浮点型数据,但是这样出来的数据有些满足,有些不满足。比如,随机产生的数是90,那么除以10.0后得到的不是9.0而是9
我该如何修改呢

for(i=0;i<20;i++)
        {
            data1[i]=rand()%101;
            data1[i]=data1[i]/(10.00);
        }

老天给了我十根纤纤玉指,我却用它们来挖鼻屎。
2010-03-25 11:37
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
得分:0 
回复 3楼 james230932
cout显示的吗,这是你显示的问题,对于float来说,存储方式只有一种,9.0和9没有区别,只是你输出显示的时候没声明固定小数点后几位而已
2010-03-25 13:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-300487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.221395 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved