首页 热点资讯 义务教育 高等教育 出国留学 考研考公

c语言的关于 : 对一个double型数据进行四舍五入运算

发布网友 发布时间:2022-04-22 14:12

我来回答

3个回答

热心网友 时间:2023-10-17 15:19

对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。
1 将double类型数据,强制转换为int类型,会强制截取整数部分。

比如double a = 1.23; (int)a的值就是1。
2 由于是强制取整,所以即使是1.9转为int后,同样是1,这与四舍五入的要求不符。所以可以转换一下算法,做(int)(a+0.5)就可以实现四舍五入到整数的效果了。
3 要实现四舍五入到某一位,可以先乘一个值,将该位移动到个位,取整后,再除上这个值,将其移动回去。
比如将double a = 1.2345四舍五入保留2位小数,可以写作
(int)(a*100+0.5)/100.0。

热心网友 时间:2023-10-17 15:19

貌似我的VC6.0直接输出printf("%.2f",a);就自动四舍五入了

你的第一个a的值没有任何改变,你只是用了a去计算,但是并没有对a重新赋值。
第二个,你对a重新赋值了,经过你的式子之后,实际上是把小数点第三位的数加了五,
b=(a*100+0.5)/100;这一句拆开算就是(a*100)/100+0.5/100即a+0.005,所以才会不管你的原数是什么,程序执行后都会进位。

热心网友 时间:2023-10-17 15:19

第一个(a*100+0.5)/100;这句没有意义,你的本意应该是a=(a*100+0.5)/100;
第一个4舍5入是printf函数实现的,不是你自己实现的。
第二个也一样,printf函数实现了4舍5入,因为你加了0.5,所以总是进入。比如你输入2.001,计算后a=2.006,打印出来就是2.01.追问那这个题应该怎样写程序。可以直接输出吗?

追答如果你想显示时四舍五入,就直接printf了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com