Chinaunix首页 | 论坛 | 博客
  • 博客访问: 326827
  • 博文数量: 63
  • 博客积分: 2344
  • 博客等级: 大尉
  • 技术积分: 628
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-13 11:09
个人简介

有一种沉默叫霸气,有一种内敛叫个性,有一种简单叫深遂,有一种不屑叫自我

文章分类

全部博文(63)

文章存档

2013年(10)

2012年(12)

2011年(1)

2010年(9)

2009年(31)

分类: C/C++

2010-03-15 15:16:07

#define MAX_RANDOM 1000
 
/*
**randf--generate a random float number
** base: the minimum float number of generated
** up: the maximum float number of generated
*/
static inline float
randf(float base, float up){
    return (rand() % (int)((up-base) * MAX_RANDOM)) / (float)MAX_RANDOM + base;
}
 
如果想生成真正的随机数,调用randf前把时间作为srand()的种子。
 
#include
 
srand( (unsigned)time(NULL) );
 
 
:关于浮点数比较的一个问题。
 
在浮点数比较是,我使用了如下代码:
 
const float EPSINON   =   0.00001;
 
#define _GT(a, b)  ( ((a) - (b)) > EPSINON )   /*a大于b*/
#define _LT(a, b)  ( ((a) - (b)) < -EPSINON )  /*a小于b*/
#define _GE(a, b)  ( ((a) - (b)) >= -EPSINON ) /*a大于等于b*/
#define _LE(a, b)  ( ((a) - (b)) <=  EPSINON ) /*a小于等于b*/
#define _EQ(a, b)  ( (((a) -(b)) >= -EPSINON) && (((a) - (b)) <= EPSINON) ) /*a等于b*/
 
两处红的和两处蓝的为什么符号是相反的? 我以为没有关系,但是,改成统一符号时确出现错误。还请高人指点一下!
阅读(3016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~