c语言 精度问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:58:39
编了一个C程序,求教,输出函数要求为浮点数,精度是自动去掉小数点末尾的0。如1.230000,输出1.23。2.000000输出2.。3.123006输出3.123006
因为输入数据是随意的,所以要求实现精度自动控制。帮帮忙

void print_double(double n)
{
static char buf[32];
snprintf(buf, sizeof(buf), "%lf", n);
char *p = buf + strlen(buf);
while (*p == '0') *p-- = 0;
printf("%s", buf);
}

printf("%.nd",a);

n为要精确的小数位
例如
printf("%.3d",1.1234);
输出1.123