永发信息网

关于C语言程序输出保留小数的问题

答案:4  悬赏:70  手机版
解决时间 2021-04-05 07:16
  • 提问者网友:最爱你的唇
  • 2021-04-04 16:59
如何使输出数据保留小数的位数变得可控?比如输入5,则输出保留5位小数,输入10,则保留10位小数。
是这样的,我需要在不改动程序的情况下,通过更改输入数据改变输出保留的位数。
最佳答案
  • 五星知识达人网友:春色三分
  • 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”
全部回答
  • 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; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯