‘壹’ c语言double * 多少位
double占8个字节(64位)内存空间,最多可提供16位有效数字,小数点后默认保留6位。如全是整数,最多提供15位有效数字。测试代码如下,
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
printf("%lf\n",123456789012345678.789);//输出123456789012345680.000000
printf("%lf\n",(double)123456789012345678);//输出123456789012345680.000000
printf("%lf\n",1234567890.1234567);//输出1234567890.123457
return 0;
}
对于double类型数据,通常不能与0直接比较,而是通过其绝对值小于给定的容差值来判断是否满足精度需求,"float.h"头文件往往定义了基本数据类型能够表示的数据的最大值和最小值,比如,
#define DBL_MIN 2.2250738585072014e-308 //宏定义了double类型最小正数
‘贰’ c语言中float型变量有效数字是七位,怎么看一个数的有效位数,和数学上的有效位数是一个概念吗
不是,变量内在给的是八位的表示,这种类型有正负,所以第一位表示正负,所以有效数字是七位,无符号型有效数字是八位,还有长整型,他是十五位有效数字
‘叁’ C++中float,double到底保留几位有效数字
float精度是2^23,能保证6位。double精度是2^52,能保证15位。但是默认float和double都只能显示6位,再多需要#include <iomanip>,然后在输出语句之前插入cout << setprecision(20);强制输出小数位。
拓展资料
float与double的范围和精度
1、范围
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:1bit(符号位) 8bits(指数位) 23bits(尾数位)
double:1bit(符号位) 11bits(指数位) 52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
2、精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
‘肆’ C语言编写程序,对一个double型数据进行四舍五入,要求保留两位有效小数,求算法。
例如double型的数据为a=5.1413,程序如下:
#incloud <stdio.h>
main( )
{
double a;
printf("请输入一个double型数据:”);
a= int (a*100+0.5)/100 ;
printf("%lf",a)。
}
这时候printf输出的结果将是5.14。
(4)c语言double型变量有效位数扩展阅读:
C语言编写程序,对double型数据进行四舍五入,保留三位有效数字,程序如下:
这里以b=8.8888
#incloud <stdio.h>
main( )
{
double b;
printf("请输入一个double型数据:”);
b= int (b*1000+0.5)/1000;
printf("%lf",b)。
}
这时候printf输出的结果将是8.889。
‘伍’ C语言中,float与double中的有效位
数值不一样精度也不一样,因为c中是以2进制存储数值,转成10进制时不定是6位还是7位这也跟不同的编译器有关系,比如Turb C 和Vistrua C好像是不一样的
‘陆’ C语言中double要输出几位小数
C语言中double默认输出 6 位小数。
如果要控制输出小数位数,可以格式化输出。
printf("%.3lf ", d); // "%.3lf" .3 则是输出 3 位小数。
printf("%.4lf ", d); // "%.4lf" .4 则是输出 4 位小数 。
C语言兼顾了高级语言的汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显着。
(6)c语言double型变量有效位数扩展阅读:
特点
1、简洁的语言
C语言包含有各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能。
2、具有结构化的控制语句
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
3、丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
4、丰富的运算符
c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
5、可对物理地址进行直接操作
C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。c语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。
6、代码具有较好的可移植性
c语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植。
7、可生成的高质量目标代码,高执行效率的程序
与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
‘柒’ 请问那个double型变量的有效数字是多少
double型变量的有效数字是15~16位
‘捌’ C中的float和double的有效数字和精度各是多少
float有效数字位为6 – 7位,字节数为4,指数长度为8位,小数长度为23位。取值范围为3.4E-38~3.4E+38。
double有效数字位为15 – 16位,字节数为8,指数长度为11位,小数长度为52位。取值范围为1.7E-308~1.7E+308。
(8)c语言double型变量有效位数扩展阅读
可根据应用程序的需求将变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。如果存储比精度更重要,对浮点变量使用 float 类型。相反,如果精度是最重要的条件,则使用 double 类型。
浮点变量可以提升为更大基数的类型(从 float 类型到 double 类型)。当您对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。
‘玖’ C语言中如何用实验的方法确定double型浮点数能精确到多少位小数
可以通过定义一个double型的变量,并对变量进行赋值,之后输出该变量的值即可。
下面举例来具体说明:
doublef=3.141592653589;
printf("%lf",f);
实验结果输出3.141593,说明double型能精确到小数点后6位。
注:该测试是在32位计算机中的VS2010环境下运行的,具体的精确度还要考虑计算机的位数与编译环境。
‘拾’ c语言 double型数据的小数位数
C语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%.16lf
不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确.
通常能精确到小数点后面6位,也就是说超过6位可能就不准了。