本文目录一览:
C语言输入小数,精确到小数点后10位
把scanf("%15.10f",x);应该改成scanf("%15lf",x);这样就好了。
代码中x是double型的,在输入数据的时候是不允许使用%f的,double型的数据输入必须使用%lf
还有,scanf("%15.10f",x);15.10这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。
扩展资料:
scanf(函数原型
int scanf(const char * restrict format,...);
函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料来源:百度百科-scanf (计算机语言函数)
c语言如何让精确显示小数?
可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。
要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。
在C语言中,使用格式化输出函数printf来实现输出。
输出格式为
%.NF
1 %为格式化字符串的引导字符。
2 .N表示指定显示N位小数。
3 F为类型字符,对于float, F值为f, 对于double,F值为lf。
举例:
1 要输出float a=1.23234; 保留3位小数的写法为:
printf("%.3f",a);
2 输出double b=123.345232; 保留4为小数,写法为:
printf("%.4lf",b);
c语言中保留两位小数如何写?
1、本文以sublime text3编辑器作为示范,先打开IDE。
2、接着我们保存main.c文件。
3、这个时候我们把内容输出,设置浮点型。也就是%f。
4、但是输出的时候默认有多位小数。
5、于是我们可以设置%.2f,也就是两位数,因为我们写了2。
6、这个时候执行代码的时候就会看到只有两位小数了。
C语言保留两位小数的问题
你给的代码是有错误的,但你说运行结果是0.00000,我暂且认为你的代码是这样的:
#include stdio.h
double a = 0.9876;
int main(void)
{
printf("%f", (int)((a + 0.005) * 100) / 100);
return 0;
}
((0.9876
+
0.005)
*
100)
/
100)
的结果是0.9926。因为
(int)
强制转换使0.9926取整,变成整型数字0。又因为“%f”的转换说明要求输出浮点数,程序给0后补零,变成0.000000。
你的题目是“C语言保留两位小数的问题”,想给该程序结果保留两位小数,应将代码改成:
#include stdio.h
double a = 0.9876;
int main(void)
{
printf("%.2f", ((a + 0.005) * 100) / 100);
return 0;
}
“%.2f”就是输出结果为保留小数点后两位的浮点数。但这里不是四舍五入,是直接截取。