c语言 double类型保留小数问题的解决方法?

用户输入希望保留小数的位数,1到16,怎么实现?
int main(){
double a = 1.123456789123456789;
char str1[] = "%. lf\n";

while(1){
scanf("%c%c%*c",str1+2,str1+3);
printf(str1,a);
}

/*
char ch[] = "abcdef";
scanf("%*c%c",&ch);
printf("%s\n",ch);
return 0;
*/
}

我写的是两位数的,注释掉的是一位数的,不知道如何实现判定输入的是一位数还是两位数?

double类型保留小数有两种情况:
1 在输出时保留两位小数:
用printf通过格式字符即可控制小数的保留。

double a = 1.234;
printf(".2lf",a);
会输出1.23
2 在运行过程中结果保留两位小数。
可以借助转为整型,及乘除运算实现。

double a = 1.235;
a = ((int)(a*100+0.5))/100.0;
运算结果,a=1.24.
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网