Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175549
  • 博文数量: 34
  • 博客积分: 2157
  • 博客等级: 大尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-19 16:05
文章分类

全部博文(34)

文章存档

2011年(1)

2010年(33)

分类: C/C++

2010-10-26 15:44:30

1.取整,返回值为int:
double   a   =   123.456;

int   b   =   (int)a;//取整
int   c   =   (int)(a+0.5);//四舍五入

C99里的round应该可以做到四舍五入
#include  
          double
          round(double   x);
---------------------------------------------------------------------------------------------------------------------------------
问题是当你的9多过double表示的有效数字位后,编译器已经把这个数解释为9.50了.
或者说我的精度要求是10个9或8个9,后面还有数字,则我都可以把它看成9.50了.
double数本来就不可以绝对精确.
-----------------------------------------------------------------------------------------------------------------------------------
在turbo   c中   double   有效数字是15~16位

2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,可以用于你的问题。但是整数除法对负数的取整结果和使用的C编译器有关。

3、使用floor函数。floor(x)返回的是x的整数部分。如:

     函数名: floor
    功 能: 向下舍入
    用 法: double floor(double x);

    floor(2.5) = 2
    floor(-2.5) = -3

4、使用ceil函数。ceil(x)返回的是不大于x的最小整数。如:

     函数名: ceil
    功 能: 向上舍入
     用 法: double ceil(double x);

    ceil(2.5) = 3
    ceil(-2.5) = -2
    floor和ceil对于正数没有区别,但是对于负数结果不同。floor()是向负无穷大舍入,floor(2.5) = 2,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(2.5) = 3,ceil(-2.5) = -2。


阅读(1664) | 评论(1) | 转发(0) |
0

上一篇:VC 6.0常用快捷键

下一篇:感想

给主人留下些什么吧!~~

chinaunix网友2010-10-26 18:33:24

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com