如何使输出数据保留小数的位数变得可控?比如输入5,则输出保留5位小数,输入10,则保留10位小数。
是这样的,我需要在不改动程序的情况下,通过更改输入数据改变输出保留的位数。
关于C语言程序输出保留小数的问题
答案:4 悬赏:70 手机版
解决时间 2021-04-05 07:16
- 提问者网友:最爱你的唇
- 2021-04-04 16:59
最佳答案
- 五星知识达人网友:春色三分
- 2021-04-04 18:14
printf函数的第一个参数是格式化串,因此可以用程序来生成它,如:
int a = 5;
double b = 1.2345;
char format[20];
sprintf(format, "%%.%dlf\n", a);
printf(format, b);
其中format即为格式化传,sprintf字符串执行完后format为“%.5lf\n”
int a = 5;
double b = 1.2345;
char format[20];
sprintf(format, "%%.%dlf\n", a);
printf(format, b);
其中format即为格式化传,sprintf字符串执行完后format为“%.5lf\n”
全部回答
- 1楼网友:思契十里
- 2021-04-04 21:25
在输出函数中的字符格式符号里可以设置,说具体点:
输出时不是有个语句是类似printf("%f",a);这样子的吗
在%跟f之前加个小数点“.”,后面跟上一个整数,表示精度位数
例如,保留五位小数的话就是printf("%.5f",a) 其中a可以用其他字符代替,代表所要输出的变量
- 2楼网友:舍身薄凉客
- 2021-04-04 19:51
看看double在内存中怎么存储的吧
看了你就明白了
给你 一个地址 自己去看吧
http://blog.csdn.net/wuna66320/article/details/1691734
- 3楼网友:你可爱的野爹
- 2021-04-04 19:09
/////////////////////////////////////////
// C-Free 4.1
// MinGW 3.4.5
// veket的小号
/////////////////////////////////////////
#include <stdio.h>
#include <string.h>
int main()
{
double x = 1.23456;
char s[100] = "";
int n=1;
printf("x = %lf\n", x);
scanf("%d", &n);
s[0] = '\0';
strcat(s, "%.");
sprintf(s+strlen(s), "%d", n);
strcat(s, "lf\n");
printf(s, x);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯