c语言中一个数的小数如何表示

作者&投稿:禹若 (若有异议请与网页底部的电邮联系)
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; //小写ffloat f2 = 1.1F; //大写Fdouble d = 1.1; //double类型

如果是数值的话,那么将原始的数值减去取整后的数值如果大于0就表示有小数 if ((n - (int)n) > 0) return = true; 如果是字符串的话,有两种方法,一种是将字符串转换为数值后用上面说的方法判断,另一种是逐字判断是否包含字符小数点“.”

两种表示方式:

1、定点表示:必须有小数点。

例如:0.123, .123, 123.0。

2、指数表示:e或E之前必须有数字,指数必须为整数。

例如:12.3e3 ,123E2, 1.23e4。

注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。

定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据x的形式为x=x0.x1x2…xn(其中x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:

一般说来,如果最末位xn= 1,前面各位都为0,则数的绝对值最小,即|x|min= 2^(-n)。如果各位均为1,则数的绝对值最大,即|x|max=1-2^(-n)。所以定点小数的表示范围是:2^(-n)≤|x|≤1 -2^(-n)。

扩展资料

由于“编码总位数为8”的限制,真值-128无法用原码、反码来表示,似乎不能用上述规则来求解补码,但实际上是可行的——只要不管它的最高位即可,操作办法如下:

将128化为二进制为:1 0000000,最高位为1,可以只对舍去最高位后剩余的7位进行处理即可,首先取反得:1111111,加1得:1 0000000,最高位有进位需丢弃,即得:0000000,加上符号位就得补码:1 0000000。

又如,当编码总位数为4时,真值X=+0.101的原码、反码、补码均为:0 101。

真值X=-0.101的原码、反码、补码依次为:1 101、1 010、1 011。

同理,特例,-1的补码为:1 000。

在定点小数中,小数点隐含在第一位编码和第二位编码之间

定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以被写成 :N = NS . N-1 N-2 … N-M。

参考资料来源:百度百科-定点小数的表示方法



两种表示方式:

1、定点表示:必须有小数点。

例如:0.123, .123, 123.0。

2、指数表示:e或E之前必须有数字,指数必须为整数。

例如:12.3e3 ,123E2, 1.23e4。

注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。

扩展资料:

关于上述提到的定点表示和数的浮点表示

1、浮点型 float-point

float/double,都属于浮点型表示。

2、定点型 fixed-point

例如,以一个字节表示小数,小数点定在5.3位置,高5位表示整数,低3位表示小数。

11001001

加上小数点之就是11001.001即整数部分为11001,小数部分为001

转换一下

整数部分 11001 = 25

小数部分 001 = 1 (分子),分母是1000(8),所以就是1/8

最终此小数表示的是 25 + 1/8

也就是说,存0/8, 1/8, 2/8, ..., 7/8 共八个档,表示精度为1/8

可见,定点型小数的值取决于你把小数点定在哪里。

3、数的定点表示:

小数点按照约定的形式给出。在计算机里面没有专门的硬件用来表示小数点, 所谓的小数点都是计算机体系设计人员按照约点的形式给出的。

按照约定的方式, 可以将计算机分为两种:一种是小数点在数符后面数值前面, 一种是数值后面。

4、浮点表示

最早的计算机只有两种表示方式:小数定点机和整数定点机。如果计算很大的数值时需要程序员手动调节小数点的位置编程困难。

数的表示范围很小, 为了表示相差很大的数据, 往往需要很大的机器字长。

数据利用率不高, 用很大的机器字长时, 有很多位都是 0 。

5、高精度小数

#include <stdio.h>

void main()

{

int a,b,cnt=0;

scanf("%d/%d",&a,&b);

printf("0."); 

while(cnt<201){

if(a==0){

break;

}

a=a%b*10;

printf("%d",a/b);

cnt++;

}

参考资料来源:

定点小数-百度百科

浮点数-百度百科



4.2用C语言表示:double d = 4.2。C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。

1、float:

FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。

2、double:

double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。 它可以表示十进制的15或16位有效数字。

扩展资料

(1) 浮点型与整型

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

(2) 单、双精度浮点型

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

参考资料:百度百科-C语言类型强制转换



好像有什么函数吧。
不过一般的思路都是。
double d=4.2;
double m;
m=d-int(d);
printf("m=%0.1f",m ) //要几位就零点几位。

我想你的意思是这样的,a变量为浮点型数据(4.2),想得知其小数部分。

不知道是不是呢?

如果是的话,那么:

float b = a-(int)(a);


c语言中一个数的小数如何表示
1、定点表示:必须有小数点。例如:0.123, .123, 123.0。2、指数表示:e或E之前必须有数字,指数必须为整数。例如:12.3e3 ,123E2, 1.23e4。注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。定点小数是纯小数,约定...

c语言中一个数的小数如何表示
C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。C语言中浮点数常量有两种表示方式:1、定点表示:(必须有小数点)如:0.123,.123,123.0。2、指数表示:(e或E之前必须有数字,指数必须为整数)如:12.3e3 ,123E2,1.23e4。错误的写法:e-5 ,...

如何获取C语言数字的小数部分。
在C语言中,可以使用类型转换、取模来取得整数和小数部分。以下代码示例:类型转换:可以使用类型转换函数将浮点数转换成整数,将整数转换成浮点数,以取得整数和小数部分。例如,以下代码将整数a的小数部分取出:取模:可以使用取模运算符( %)来取得整数和小数部分。例如,以下代码将整数a的小数部分取出...

在c语言中如何取一个数的小数部分
小数部分 : double r = e - (int) e;

C语言中,如何输出带小数的数?
利用C语言使输出值为小数的编程方法和思想如下:1.首先需要定义一个变量作为后续需要输出的数。这里以定义一个变量a为例。需要注意的是,整型int是不支持转化的。2.然后使用scanf()函数接受从键盘输入的一个数,这样就为变量a成功赋值。3.接着使用printf语句来对数a进行小数化的处理。处理格式为:【%....

c语言小数点怎么表示?
小数点也算在宽度之中。.2是保留两位小数,5是指宽度为5。输出5位数,期中两位是小数,如果一个数大于5位如100000,将输出100000.00也就是说一但数值超过限定值将不再限制整数位。且c语言中%d是表示整型数据(即整数) %f表示的是浮点型数据(即小数) 而%5.2f是表示五位有效数字且小数点后有...

c语言中 怎么将一个数的小数部门取出
一个数为x 小数部分是 x - (int)x,x是负数的时候上述表达式也是负数, 用fabs函数取绝对值 代码如下

C语言如何取整数和取小数部分?
1、取整数部分 要在C语言中取浮点数的整数部分,可以使用类型转换、向下取整函数(floor)或截断小数的方法。类型转换使用强制类型转换运算符,可以将浮点数转换为整数类型。使用floor函数可以让浮点数向下取整为最近的整数。而截断小数的方法则是直接用整数类型变量接收浮点数值,小数部分会被丢弃。2、取小数...

C语言中怎么判断一个数是否含有小数点?!
如果是数值的话,那么将原始的数值减去取整后的数值如果大于0就表示有小数 if ((n - (int)n) > 0) return = true; 如果是字符串的话,有两种方法,一种是将字符串转换为数值后用上面说的方法判断,另一种是逐字判断是否包含字符小数点“.”...

c语言中浮点数的小数部分占几位?
printf("%7.3f",100\/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。例如:C语言中浮点数输出精确到两位小数的语句如下:double a=2.0;printf ("%.2f", a);\/\/其中.2指明两位小数 说明:如%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, ...

衡阳县17315505638: c语言如何取小数,比如说输入1.23输出23,输入1.001输出001;我这个不对,求大神 -
局邦葛根: # include<stdio.h># define N 12 int main() { char str[N];/*用字符串记录输入*/ int i=0; scanf("%s",str); while(str[i]!='.') i++; while(i<strlen(str)) printf("%c",str[++i]); return 0; }

衡阳县17315505638: C语言遇到小数怎么处理. -
局邦葛根: 用float或double定义变量的类型,输出时要输出对应的%f%lf.%f一般默认输出点后6位小数,如果想输出例如点后两位数,则用%.2f或%.2lf.

衡阳县17315505638: C语言中如何定义小数 -
局邦葛根: C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数. C语言中浮点数常量有两种表示方式: 1、定点表示:(必须有小数点) 如:0.123, .123, 123.0. 2、指数表示:(e或E之前必须有数字...

衡阳县17315505638: c语言结果有小数点怎么表示?c语言结果有小数点怎么表示,在c++
局邦葛根: 当一个是小数时,按照小数计算,结果是小数(3、4、5、6).此时如果按照整数输出,系统就将浮点数转化为整数,(4、6)出现乖乖的结果; 有意思的是(2),将5/3的记过按照浮点数输出,结果是839.209961,说明我的机器整数是32位,而浮点数是用double表示的,80位,由于字长不够,系统就取了整数后面的字节作为浮点数的一部分,所以输出成了(2)的样子,这是随机的,和机器有关. 这是我的看法,请采纳.

衡阳县17315505638: “a是一个带小数的的正数,b是一个带小数的负数”用c语言怎么描述 -
局邦葛根: 这个问题可以分成两部分,如何描述一个数是带小数的,和如何描述一个数的正负. 一,描述正负. 可以直接用判断语句,利用数学性质,与0比较. if(a>0)代表该数为正数. if(b<0)代表该数为负数.二、判断是否有小数. 在C语言中把float...

衡阳县17315505638: C语言中显示小数部分 -
局邦葛根: printf("c is %d\n", c); // %d表示以整数输出,如果对应的变量是浮点数,会自动把小数部分截掉 如要输出小数应该改为 printf("c is %f\n", c); //单精度的 或者 printf("c is %lf\n", c ); //双精度的

衡阳县17315505638: 如何用C语言输出保留100位的小数 -
局邦葛根: #include<stdio.h> #include<stdlib.h> void main(){ int i=0; int m=10; int n=3; int s=0; s=m/n; printf("%d",s); printf("."); for(i=0;i<100;i++) { s=m/n; m=m%n*10; printf("%d",s);} printf("\n"); }

衡阳县17315505638: 如何用c语言表示一个数的小数次方? -
局邦葛根: 用pow()即可 例 求16的平方根,输出4,double型#include main(){ printf("%f",pow(16,0.5)); scanf("%c");/*暂停屏幕用*/ }

衡阳县17315505638: 在C语言里只保留一位小数怎么写 -
局邦葛根: 使用%.1f格式符就可以了.. 或者(int)(n*10)/10也可以

衡阳县17315505638: C语言——分数的小数表现 -
局邦葛根: 先将小数转换成10的倍数作为分母的分数(分子分母分别用两个变量或者两位数组存)然后递归不断找公因数并化简.(可以用辗转相除法?)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网