C语言有没有数据的四舍五入?什么情况下会用到四舍五入?数据类型转换?

 我来答
xoalyg
2011-08-17 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2375万
展开全部
C语言中的float和double类型数据是浮点数,所以小数部分就存在四舍五入问题,当指定输出位数在精度范围之内时,系统会自动舍入,无需人工干预,如果小数部分也在精度范围内,比如10.0/2.0 = 5.0,2位以上的输出位数时,后面的都是0,此时,当然不需要舍入了。
数据类型转换有两种方式,一种是默认强制转换,比如将char、short、Int、Long和float类型数据赋给double类型变量时,编译程序会自动实施转换,这是因为,在精度更高时,这样的转换是内有损失的。另一种是手动强制类型转换,比如dnum = (double)inum;,意思是将整形变量inum首先转换为双精度数据,然后再付给dnum。当将高精度类型变量赋给低精度类型变量时,除非手动强制转换,否则,编译程序会有提示的。
liufashuai
推荐于2017-11-24 · TA获得超过605个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:264万
展开全部
有四舍五入的情况,在你想要保留几位小数的时候,多余的紧接着的一位要四舍五入
不过C里面没有提供四舍五入的函数,不过你可以这样
a = (int)(a*100 + 0.5)/100
这只是一个小技巧,对a的第三位进行四舍五入
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zz19435
2011-08-17
知道答主
回答量:7
采纳率:0%
帮助的人:3.9万
展开全部
浮点运算时,由于精度的问题,涉及到了四舍五入,这也是为什么一个很大的数和一个很小的数相加,会出错的原因。
但数据类型强制转换时,是采取的舍弃原则,没有四舍五入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mvplover1985
2011-08-17 · TA获得超过223个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:344万
展开全部
数据强制转换是用舍弃的方法,不会用四舍五入,什么时候用四舍五入是需要详细说明的,也就是你的业务需求而定,你可以把数字+0.5,然后进行强制转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wtyelu
2011-08-17
知道答主
回答量:64
采纳率:0%
帮助的人:30.1万
展开全部
double强制转换成int型的时候保留整数部分的。。
比如double a=1.5;
int b=a;
a就是1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式