用户输入希望保留小数的位数,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.
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.
温馨提示:答案为网友推荐,仅供参考