在 C语言中 双精度和单精度的数,小数点后面分别保留几位啊·······

如题所述

c语言中double和float的精度并不是按小数点后面多少位来算的
而是按有效数字来算
比如如果是精度为2个有效数字
0.21就是精确的
但是11.1小数点后面的都是不精确的

以下是单双精度的精确位
float 6-7
double 15-16追问

那请问一下为什么下面两个程序的计算数字的精度是一样的?
#include
main()
{
double a;
a=1.23546982+2.15239684;
printf("the MPG is %lf", a);

}

#include
main()
{
float a;
a=1.23546982+2.15239684;
printf("the MPG is %f", a);

追答

用乘法去验证
200001*200023 你试试看结果如何

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-28
6位,8位
第2个回答  2011-10-28
双精度 小数点后面保留15位
单精度 小数后面保留7位

在C语言中 双精度和单精度的数,小数点后面分别保留几位啊···_百度...
double 15-16

c语言float和double保留小数点后几位
c语言float和double保留小数点后6位。C语言中,输出double类型(双精度实型)以及float类型(单精度实型)时,默认输出6位小数(不足六位以0补齐,超过六位按四舍五入截断)。如果想小数点后面16位,写成%.16lf,不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确。通常能精确到小数点...

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

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

C语言中的单精度和双精度输出时小数点后应该出多少位!!!
单精度6位,双精度12位

在C语言中单精度浮点和双精度浮点小数点后有几位小
小数点后是几位与单精度或双精度无关,输出浮点数时%.xf中的x确定输出多少位小数,如%.12f就把对应的浮点变量值输出12位小数。但是,由于浮点数的长度都是有限的,float的精度是7位左右(包括整数部分),double的精度为16位左右(同样包括整数部分),当x值大到超出对应变量类型的最大表达能力时,后续...

计算机C语言的单双精度是什么啊,怎么区别啊?
单精度有效位数是前七位,当然不包括小数点,但是小数点后面默认保留6位小数,如果不够6位用0填充。12.23456789446547这个就是双精度,双精度默认保留14位小数。双精度比单精度表示浮点型(也就是小数)更精确一些,比如在需要高精度数据的地方就可以用双精度。其它的前面都说了 都很对。

单精度、双精度各有几位小数?
单精度有6位小数,双精度有15位小数。单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位。双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。

能否清楚地解释一下c语言中的单精度和双精度?
可以这样理解:都是表示小数,但表示的精度(或者范围)不同。单精度:小数点后面可以跟7位,如1.234567;双精度小数点后面的数是单精度的两倍即14位,如1.235412644154412

C语言的double与float类型最多只能默认输出小数位数都取6位?
float 为单精度,有效数字为6~7double 为双精度,有效数字为15~16 但他们在输出时,小数点后都有6位小数。例如3.123456 但是在格式化输出时例外。如:main(){ int a=15;float b=123.1234567;double c=12345678.1234567;char d='p';printf("a=%d,%5d,%o,%x\\n",a,a,a,a);printf("b=...

相似回答