在C语言中为什么单精度浮点型变量不可以存放0.15这类的小数?

作者&投稿:养达 (若有异议请与网页底部的电邮联系)
在C语言中为什么单精度浮点型变量不可以存放0.15这类的小数?~

一楼的那样做会报警告,0.15系统默认的是double类型,
#include

int
main()
{
float
x;
x
=
0.15f;
printf("%f
",x);
return
0;
}
这样就不会有警告了。楼主为什么说不能存放这类数据呢。你是怎么做的?

C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证7位有效数字,部分数值有8位有效数.

一楼的那样做会报警告,0.15系统默认的是double类型,#include <stdio.h>int main()
{
float x;
x = 0.15f;
printf("%f\n",x);
return 0;
}这样就不会有警告了。楼主为什么说不能存放这类数据呢。你是怎么做的?

#include <stdio.h>int main()
{
float x;
x = 0.15;
printf("%f\n",x);
return 0;
}//谁说不能?

在return o;前面再加个system("pause");包含头文件<iostream>

printf("%5.2f",a);


C语言什么是单精度、双精度?
C语言中用float描述单精度,用double描述双精度。为什么要把数据分成单双精度呢?我们生活中通常用到数据时会说精确到小数点后几位,计算机存储数据时精确度越高,占用内存空间越大,根据精确度的需要,如果你选用单精度数据,是说你让电脑用较少的空间存放数据,表现为精确到小数点后5位,并且第五个小数...

在C语言里面,单精度和双精度有什么区别和联系
单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储。这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值。但是与此同时,他也完全符合科学计...

c语言数据类型中“双精度”“单精度”是什么意思?
双精度,单精度指浮点型数,双精度 叫 double 型, 单精度 float 型。double 型 用 64位2进制存放,float 型 用 32位2进制存放。所以,两种数 的 最大和最小 数值范围 不同,数的有效数字个数不同,也就是精度不同。double 型 最大数值 1.7976931348623158e+308 最小正数数值 2.225073...

为什么c语言中要用f表示单精度?
f表示单精度浮点数float,6表示数据表示至少6位,后面的.2表示小数点后保留两位 比如2324.12365用这个表示的话,结果就是2324.12 如果不足六位就会在前面补空格 超过六位的话正常显示 代码例子:int main(){ float a=6263.1234;printf("%6.2f",a);return 0;} 结果就是6263.12。

为什么float用作单精浮点数?
float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)可以定义单精度浮点型变量,如float a;即定义了一个电精度浮点型变量a。相关类型:double表示双精度浮点数...

C语言中的单、双精度数的意义
其实就是有效位数不一样。浮点型变量分为单精度(float)、双精度(double)和长双精度(long double)3类。在Turbo C 中:比特(位)数 有效数字 float 32 6-7 double 64 15-16 long double 128 18-19 ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将dou...

什么是c语言里面的单精度
单精度、双精度、长双精度是以他们的有效数字加以区分的。单精度的有效数字是7位,用float定义。就是说它在7位有效数字之外的位做加减等运算的结果很可能结果不准确。如float的a=100000000,a+20的结果不是100000020,他只保证100000000是准确的 双精度的话可以保证16位有效数字是准确,长双精度的是19...

C语言中为什么单精度实数的有效位数一般为7位。
因为浮点型数据在储存时使用的储存单元长度有限,因此能提供的 有效数字位数是有限的。float x;x=66666.66666;printf("%f",x);运行结果:x=66666.664063 输出结果前7位是准确的后四位是一个意想不到的数

c语言中什么是单精度型和双精度型???各举个例子。。。
单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果...

c语言中单精度和双精度有什么区别
单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度都是用 8 个字节来存储的。这是他们最本质的区别。由于存储位不同,他们能表示的数字的范围也不同,具体能表示多大的范围,查一下手册就知道了。

海勃湾区13062151567: 在C语言中为什么单精度浮点型变量不可以存放0.15这类的小数?
本狐景天: 一楼的那样做会报警告,0.15系统默认的是double类型, #include <stdio.h> int main(){ float x; x = 0.15f; printf("%f\n",x); return 0;} 这样就不会有警告了.楼主为什么说不能存放这类数据呢.你是怎么做的?

海勃湾区13062151567: C语言中浮点数为什么不能准确存储?
本狐景天: 浮点数,即双精度double型或单精度float型,拿双精度的double来说,定义一个double型的变量,如 double a;那么a在内存中开辟了一个32位的空间来存储变量a,但是你要存储变量a,计算机要将浮点数a用一个定点整数和一个定点小数表述,在对阶码的时候,由于各个计算机CPU的字长不一样,可能造成对阶时产生小数部分丢失,这样造成了存储不准确.建议看看组成原理.

海勃湾区13062151567: c语言中的数据什么情况下用整型、单精度浮点型,双精度浮点型、字符型呢? -
本狐景天: 只有整数的情况用整形,如果可能有小数,但是位数不大或者对保留的小数要求不高就用单精度,比较大用或者对精度要求较高(6位以上)用双精度.如果可能有非数字类型的就用字符型.

海勃湾区13062151567: C语言怎么表示单精度浮点数 -
本狐景天: 在C语言源码中,只能在浮点数后面加f来表示单精度浮点数.譬如如下代码: float f = 1.1f; 或者 float f = 1.1F;大小写都可以的.16进制的浮点数编码,它不像整数编码那样直观,因为浮点数编码,在计算机中是以IEEE754格式进行编码编码的,每一个二进制位都有不同的意思,拿单精度浮点数来说,它的符号位占1位,指数位占8位,有效数字位占23位,而且,如果使用十六进制来传送,你还要确定计算机的内存,存储顺序. 相对很复杂的. 要了解更多浮点数编码的问题,可以自己找一下IEEE754编码格式详细的介绍.也许会帮到你!

海勃湾区13062151567: c语言里单精度和双精度怎么理解? -
本狐景天: 单精度和双精度都指浮点数,就是带小数点的数 只不过单精度和双精度是为了区分有效数而已(也就是精确度),它的提法完全符合科学计算中对于数值的观念. 比如:单精度/双精度数值类型从一开始设计的时候,就不是一个准确的数值类型,他只保证在他这个数值类型的精度之内是准确的,精度之外则不保证.

海勃湾区13062151567: 在c语言中,单精度浮点数与双精度浮点数的区别与联系. -
本狐景天: 在C语言中,单精度浮点数(float)和双精度浮点数(double)类型都是用来储存实数的,双精度是用记忆较多,有效数字较多,数值范围较大.两种类型对应的格式字符也有不同. 以Turbo C 为例: float 单精度浮点数使用记忆:4 字符(32 位...

海勃湾区13062151567: float x=1234567.1234 printf("%f\n",x)怎么输出是1234567.125000 -
本狐景天: 在C语言中,浮点型变量有单精度、双精度和长双精度三种,在你的printf输出语句中的f指的是单精度,比特位32位,有效数字是6~7位.而x明显超过,后面的数字5是无意义的,并不能准确的表示,所以应将其定义为double型.

海勃湾区13062151567: C语言中的单精度和双精度浮点型的区别!3.14是哪种?3.14159呢? -
本狐景天: 3.14是单精度,3.14159是双精度. 两者区别如下: 一、指代不同 1、单精度:是指计算机表达实数近似值的一种方式. 2、双精度:此数据类型与单精度数据类型(float)相似,但精确度比float高. 二、占用空间不同 1、单精度:范围在负...

海勃湾区13062151567: c语言中,常量,变量,浮点,单精度,双精度是什么意思?举例 -
本狐景天: 实型常量又称实数或浮点数.在C语言中可以用单精度型和双精度型两种形式表示实型常量,分别用类型名float和double进行定义. 实型常量在一般的微型集中占用4个字节,一般形式或者指数形式,数值范围都是-1038~1038,有效数字是7位....

海勃湾区13062151567: c语言中单精度浮点型和双精度浮点型分别可以保留几位小数 -
本狐景天: C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间.其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证7位有效数字,部分数值有8位有效数.

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