如何取消double的四舍五入
double
众所周知double 称为双精度浮点数,占八个字节,用%lf输出,默认输出六位小数,不足六位用0补齐,超过六位四舍五入截断。
一般来说,我们平时做题的时候较多都是保留两位小数即可,即用%.2lf进行输出,这时double会自动把数据进行四舍五入的,
如:
#include<stdio.h>
int main()
{
double a=6.6666;
printf("%.2lf",a);
}
这时输出为6.67,很明显数据经进行了四舍五入的处理。
那如果说题目要求不用进行四舍五入呢,例如上面的6.6666,输出要求是6.66,而不是6.67,
这时只需要加入一行强制转换即可
#include<stdio.h>
int main()
{
double a=6.6666;
a=(int)(a*100)/100.0;
printf("%.2lf",a);
}
这时输出便是6.66了。
同理,如果需要输出三位小数而不进行四舍五入,把上面的100改成1000即可。