❶ c语言中除法怎么取得小数
1、打开C-Free,新建文件。
❷ 如何用c语言计算小数点后位数
这个要看小数按什么格式输入。
如果按%s输入,也就是按字符串格式输入,先找到小数点的位置,然后统计下小数点后数字的长度。
具体实现可参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
如果按%f(对应float类型小数)或者%lf(double类型的小数)方式读入,则需要先去掉整数部分,然后看小数部分一直乘10减去整数部分,知道等于0,统计,乘了几次10,但是由于浮点数在计算机中存的并不是准确值,这个往往得不到正确的结果。可以使用sprintf(str,"%g",f);,然后由于f毕竟不是准确值,还是会出现有些问题,源码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
float f;
while(scanf("%f",&f)!=EOF)
{
sprintf(a,"%g",f);
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
这是最后一个已经出现错误,所以遇到要精确判断小数点的位数,最好直接按字符串读入,这和图灵机的工作原理暗暗相合。
❸ C语言中的带小数运算看看我写的哪里不对了
#include <stdio.h>
int main(int argc, char* argv[])
{
double M = 0.00, R = 0.00, Y = 0.00; // M为总金,R为整数的利率,要转化为小数,Y为年限
int qian2, qian1; // qian1是利息,qian2是总本息
scanf("%lf%lf%lf", &R, &M, &Y);
qian1 = M * R / 100;
qian2 = M + qian1;
printf("%d", qian2);
return 0;
}
❹ c语言中如何求最小数
c语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。
c语言中浮点数常量有两种表示方式:
1、定点表示:(必须有小数点)
如:0.123,
.123,
123.0。
2、指数表示:(e或e之前必须有数字,指数必须为整数)如:12.3e3
,123e2,
1.23e4。
错误的写法:e-5
,1.2e-3.5,e3。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,请在末尾添加小写的f或者大写的f,表示此常量为单精度浮点常量。
float f1 = 1.1f; //小写f
float f2 = 1.1f; //大写f
double d = 1.1; //double类型
❺ C语言带小数点的计算问题
printf,sprintf函数系列的第一个参数(也就是字符串输出格式中)中要对小数进行位数限制可以用"%a.bf"的形式表示,其中a是小数点前的位数,b是小数点后的位数
例如:
printf("小数=%7.5f",12.3);
输出结果就是0000012.30000
❻ 如何用c语言计算小数点后位数(float本身都无法精确)
#include
void
main()
{
float
f;
double
c;
//结果最好定义为double型,运算时最后的结果可能会转为double型
printf("输入华氏温度:");
scanf("%f",&f);
//用于接受键盘输入的数
c=(f-32)/1.8;
//计算
printf("c=%lf",c);//输出结果
}
//如果要循环输入可用循环嵌套起来,并使用条件当你输入特定值时退出
❼ 求C语言小数精确计算
你好,在编程中不要指望去得到一个精确的数字,而应该是顶一个误差范围(相对误差)。如 double eps = 0.000000001;然后再把数字与 eps 比较。
if((68 - n)<eps)即认为 n = 68;。当然,这是人工处理。如果想得到精确数字,可以用 Boost 库。
❽ C语言怎么算小数除法
在C语言中整数没有除法,只有取商(/),取余(%),所以,也没有什么舍入,2/3=0,3.2/2=1.6(2也是浮点数,因为不同数据类型的数是不能参与运算的),1.50000*6=9.0(同理,6也是浮点数)。
❾ 如何用c语言计算小数点后位数(float本身都无法精确)
float以10进制只有7个有效数字,如果你存的数大于7位那么一定会不准确,小于7位的就准确,其实float只有前7位有意义,有时会只有6位有意义。。。 也就是说你只用用7-整数位数就行,如果整数位为0,那么你只需要7+第一个不是0的小数所在位置即可,即此时小树位数是大于7的,但有效数字个数仍然是7。。。。
❿ C语言中如何求小数
如果要求小数,数的定义必须为float或double类型。