00问答网
所有问题
double 转换int 要四舍五入的 c语言
如何才能不四舍五入 , 有人说用(int)(x < 0 ? x - 0.5 : x + 0.5)这个
有点不明白 请解释一下
举报该问题
推荐答案 2011-03-07
一个double型的数强制转换后 就把小数点后去了 这个相当于if(x<0) x=x-0.5;else x=x+0.5;
如果是负数的话-0.9强制转换为 -0.0 所以要减0.5 整数的话 0.9 也是强制转换为0 但是如果加0.5 就能强制转化为1了 不知楼主明白没有
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/nrZBBDZDB.html
其他回答
第1个回答 2011-03-07
如果x>0的话,即正数。
x+0.5,如果x小数部分超过或等于0.5的话,这一加,势必会往整数上进位。
如果小于0.5,加完没有进位。
(int)强制转换是只取整数部分的。
同样x<0的情况也可以由x-0.5来取。
相似回答
c语言的
关于 : 对一个
double
型数据进行四舍五入运算
答:
对double数据类型进行四舍五入运算,可以利用
double转
为整型时强制取整来做到。1 将double类型数据,强制转换为int类型,会强制截取整数部分。比如double a = 1.23;(int)a的值就是1。2 由于是强制取整,所以即使是1.9
转为int
后,同样是1,这与
四舍五入的
要求不符。所以可以转换一下算法,做(int)...
...的数据被强制
转换
成
int
类型是,是小数位
四舍五入
还是只保留整数...
答:
int
强制
转换
是不保留小数的。ceil是向上取整,floor是向上取整,这两个函数返回值是
double
类型的
c语言
中没有
四舍五入
函数,需要使用时可以自己定义下。include <math.h>#include <stdio.h>// 自定义四舍五入宏#define ROUND(x) (int)(x + 0.4999999999999999)double round(double x, int d) /...
c语言
怎么实现
四舍五入
?
答:
int
main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)/1000.0;printf (“%0.3f”,a);return 0;}
double
型的数据如何
四舍五入
保留3位有效数字
答:
例如
double
型的数据为a=5.1413,程序如下:incloud <stdio.h> main( ){ double a;printf("请输入一个double型数据:”);a=
int
(a*100+0.5)/100 ;printf("%lf",a)。} 这时候printf输出的结果将是5.14。
大家正在搜
相关问题
c# 计算后的double怎么四舍五入转int
c语言:int型的强制类型转换是按四舍五入吗?
C语言中对于浮点数进行(int)转换时,计算机是按照四舍五入...
C语言中,double型转成int型是用的四舍五入还是直接取...
c语言的关于 : 对一个double型数据进行四舍五入运算
c++中double转int小数部分直接去掉还是四舍五入 如...
C语言有没有数据的四舍五入?什么情况下会用到四舍五入?数据类...
C++中double float 这之类的类型转换为int ...