我用scanf("%f",&x)接收数据,如x=0.0000002,最后接收到的数据只能精确到小数点后六位,我想接收接进0而又比较小的数,如这数能精确到小数到后10位
直接一点
#include<stdio.h>
void main()
{
double x;
scanf("%15.10f",&x);
printf("\n%15.10f",x);
}
当我输入0.0000002的时候,输出的结果就不是我要的结果,我要的就是输出0.0000002;
或者换一个问法,有没有办法,用scanf接收10的负7次方啊,三位大侠都没答到点上啊
把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 (计算机语言函数)