关于C语言float

float型数据的舍入误差
是潭浩强的书.第3版.
还有,定义FLOAT算1/4,为什么等于0而不是0.25?
INT肯定是等于0的,FLOAT为什么也等于0.

书上说
a=123456.789e5;
b=a+20;
printf("f/n",b);

这里的误差我能懂,因为精确位数的问题.
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.
1.0/3.0*3不存在这样的问题吧.
我用的是Turbo C&C++ 3 英文版.
还有,1/4为什么等于0?也是FLOAT型.
如果INT型=0我能理解,FLOAT为什么也等于0,而不是0.25??
回答一下谢谢
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.

azheng757大哥,最后一个疑问了.为什么
printf("%d",1.0/3.0*3);
0
算的结果=0?
这样不也是先转化为精度高的吗?
我是自学的...

意思是
1/3=0.333333333........
再0.33333333.......*3=0.999999999999999999.....
是吗?
突然想起来,以前想过的一个问题.
1/3*3=1
却0.3333333333...*3=0.999999999....
晕死.1和0.999999....怎么看也是1大 = =!!
吐血身亡.

你如果是这样定义
float m=1/4;
则m=0.00
1 4皆为整型,按整型计算得0,再转为实型赋值
若定义
float m=1.0/4;float m=1/4.0;float m=1.0/4.0;
m=0.25
最后一个不用说
前两个类型不匹配,在这种情况下,都先转化为精度高的,即实型,再运算,最后再将运算结果转化为定义变量的类型即实型赋值

printf("%f",1.0/3.0*3);
1.000000
printf("%d",1.0/3.0*3);
0
你可能是这样算的
int a=1.0/3.0*3;
printf("%d",a);
1

没错,是转化为精度高的浮点数,结果也是实型的,
但你知道实型是有误差的,即使精度很高,可能结果是0.999999……
但不是1,对其取整,结果还是0,它只会舍不会入

我想是吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-07
应该为1.0/4.0

float在c语言中的意思
C语言中float浮点型数据类型,FLOAT数据类型用于存储单精度浮点数或双精度浮点数。FLOAT数据类型用于存储单精度浮点数或双精度浮点数,浮点数使用IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有4个字节,包括一个符号位、一个8位excess-127二进制指数和一个23位尾数,尾数表示一个介于1.0和2....

在c语言中float数据数值范围是多少?
在C语言中,float数据类型的数值范围为大约-3.4E38到3.4E38。关于float数据类型的数值范围,可以从以下几个方面进行解释:一、float数据类型概述 在C语言中,float是一种单精度浮点数据类型,用于表示带有小数点的数值。它通常占用内存中的4个字节。二、数值范围细节 float数据类型的数值范围是从一个很...

C语言中float什么意思?
C语言中float浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。尾数表示一个介于 1.0 和 2.0 之间的数。由于尾数的高顺...

float在c语言中代表什么
float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言采用了10进制,主要是由数字和小数点组成,比如1.7,2.8466都是10进制,而float就是当中的小数点。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指...

c语言中float是什么意思(c语言中float代表什么)
c语言中float是什么 float是c语言基本数据类型中的一种,表示单精度浮点数。c语言中float代表什么 C语言中,float为单精度浮点数,占4字节,其数值范围为3.4E-38~3.4E+38或者-(3.4E-38~3.4E+38)float的指数位有8位,尾数位有23位,符号位1位。于是,float的指数范围为-127~+128,按补码的...

c语言float型数据范围(在C语言中float数据数值范围是多少)
C语言中,float为单精度浮点数,占4字节,其数值范围为3.4E-38~3.4E+38或者-(3.4E-38~3.4E+38)float的指数位有8位,尾数位有23位,符号位1位。于是,float的指数范围为-127~+128,按补码的形式来划分。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达...

C语言中float是什么意思
C语言中的float是一种用于表示浮点数的数值类型。在C语言中,浮点数可以分为单精度浮点数和双精度浮点数。单精度浮点数使用4个字节存储,包含一个符号位、一个8位的指数和一个23位的尾数。双精度浮点数则使用8个字节存储,包含一个符号位、一个11位的指数和一个52位的尾数。浮点数在内存中的存储...

float在c语言中代表什么
float在c语言中的意思是表示单精度浮点数。浮点类型的单精度值具有4个字节,包括一个符号位、一个8位excess-127二进制指数和一个23位尾数,尾数表示一个介于1.0和2.0之间的数,由于尾数的高顺序位始终为1,因此它不是以数字形式存储的。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用...

C语言数据类型中的float是什么意思?
C语言的合法数据类型的关键字大体上分为:int(整型)、float(单精度型)、double(双精度型)和char(字符型)。除了这基本的4种类型外,还有一些数据类型的修饰符,有long(长整型)、short(短型)、signed(有符号型)和unsigned(无符号型)。float是浮点型数据类型,用于存储单精度浮点数或双...

C语言中什么时候用double什么时候用float?怎样保留两位小数?
在C语言编程中,选择使用float还是double取决于你对数值精度的需求。如果对精度要求不高,例如进行简单的计算或处理不敏感的数据,使用float会是个明智的选择。它仅占用4个字节,相较于double,体积小,节省内存空间。然而,如果任务需要处理大量数据或进行精确计算,例如在科学计算、金融领域或者任何需要高...

相似回答
大家正在搜