在执行speed=11ncounter
后speed的值也是整数,小数后面的数会被省略,你需要将speed定义为小数型:float
speed;
2你的ncounter是多大的数?是否比speed最大范围值大,如果大可能数据就乱了!
dian=speed10,dian这个数也要同上考虑
3小数点的数可以考虑使用:
dian=(speed%1)10;//取出小数点后一位的数乘以10,变成整数显示,你要显示成小数显示程序里前面加个点的符号隔开就行了!
printf("%73f",100/30);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。
例如:
C语言中浮点数输出精确到两位小数的语句如下:
double a=20;printf ("%2f", a);//其中2指明两位小数
说明:如%92f
表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,如果9缺省则场宽为该数实际位数
规定符
%d 十进制有符号整数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
扩展资料:
如果是实数的话,就不是这样了,机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。
FPU->Floating Point Unit,浮点运算部件。
BCD->Binary Coded Decimal 压缩的二进制数,是用4个位来表示数字0~9,一个byte表示两个十进制数,比如正常二进制数1001111表示79,而BCD中用 0111 1001 来表示79。
科学计数法:a×10的n次幂的形式。将一个数字表示成 (a×10的n次幂的形式),其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
参考资料来源:百度百科-浮点运算
把scanf("%1510f",&x);应该改成scanf("%15lf",&x);这样就好了。
代码中x是double型的,在输入数据的时候是不允许使用%f的,double型的数据输入必须使用%lf
还有,scanf("%1510f",&x);1510这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。
扩展资料:
scanf(函数原型
int scanf(const char restrict format,);
函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料来源:百度百科-scanf (计算机语言函数)
1、打开C-Free,新建文件。
2、输入以下内容:(以除法为例)
#include <stdioh>
main()
{
float a,b,c;
printf("请输入被除数:");
scanf("%f",&a);
printf("\n请输入除数:");
scanf("%f",&b);
c=a/b;
printf("\n%f÷%f=%f\n",a,b,c);
}
3、按F5运行,得到结果。
4、float a,b,c;意思是设置三个名为a,b,c的浮点变量,区别于整形变量(int a,b,c;)和字符串变量(char a,b,c;),浮点变量是可以带小数的数值变量。
5、scanf("%f",&a);表示将你输入的数字以带6位小数的形式储存于a中。
6、c=a/b; 是一个赋值语句,意思是将a除以b的值给c。四则运算中,加法运算符为+,减法为-,乘法为,除法为/。
7、如果只想保留三位小数,可以在%f中间加3,即printf("\n%3f÷%3f=%3f\n",a,b,c)。
8、当然%3f与%d一样前面的%f与后面变量按顺序一一对应即可。
如果是数值zd的话,那么将原始的数值减去取整后的数值如果大于0就表示有小数if
((n
-
(int)n)
>
0)
return
=
true;
如果是字符串的话,有两种方法,一种是将字符串转换为数版值后用上面说的方法判断,权另一种是逐字判断是否包含字符小数点“”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)