发布网友 发布时间:2022-04-24 03:27
共5个回答
热心网友 时间:2022-05-27 11:14
双精度实数,占用字节8。
有效数字15~16(因为二进制转十进制问题)。
数值范围-1.7*10负308次方~1.7*10的308次方。
当有效数字全部是整数时,即整数有15~16位。
C语言中,输出double类型(双精度实型)以及float类型(单精度实型)时,默认输出6位小数(不足六位以 0 补齐,超过六位按四舍五入截断)。double a = 1;printf("%lf\n", a);输出会是:1.000000
比如计算平均分,一到两位小数就足够了。可是有时六位又不够,需要更多位小数,比如计算高精度平方根。这时可以用printf的格式控制。如果要输出n位小数,那么可以用%.nlf的格式。其中n为数字。
所在函数库为【ctype.h】
int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0
int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')
返回非0值,否则返回0
int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0
int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)
以上内容参考:百度百科-C语言函数
热心网友 时间:2022-05-27 11:14
双精度实数。
占用字节8
有效数字15~16(因为二进制转十进制问题)
数值范围-1.7*10负308次方~1.7*10的308次方。
当有效数字全部是整数时,即整数有15~16位。
ps:严重同意tanyuguo的:“只考虑有效位数,不考虑整数部分有多少位”。
具体内存中的表示方法参考:http://zhidao.baidu.com/question/15397287.html
热心网友 时间:2022-05-27 11:15
C语言中double代表的意思是:
double是C语言的一个关键字,代表双精度浮点型,占8个字节内存空间,其数值范围为“1.7E-308~1.7E+308”,双精度完全保证的有效数字是15位,16位只是部分数值有保证。
double 和 float 区别
C语言中,float和double都属于浮点数。区别在于:double所表示的范围,整数部分范围大于float,小数部分,精度也高于float。
举个例子:圆周率3.1415926535 这个数字,如果用float来表示,最多只能精确到小数点后面的6位。而double大约能精确到小数点后面的15位左右。具体精确到几位,跟所用的编译器有关,但是各个编辑器编译器之间,也是相差不大的。
至于整数部分,float表示的整数部分的范围,就已经够大了,能表示到万亿级别,已经大到没边了。而double所表示的整数范围,大到更没边了。实际开发中,除了个别高精领域,基本上,使用float就足够了。
double是C语言的一个关键字,代表双精度浮点型。
占8 个字节(位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证。
可以用格式化输入输出语句scanf和printf进行double类型的输入输出,格式化字符为%lf。
赋值中的类型转换
当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下:
1、浮点型与整型
单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。
2、单、双精度浮点型
由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。
3、 char型与int型
int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。
char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。
对于使用者来讲,如果原来char型数据取正值,转换后仍为正值;如果原来char型值可正可负,则转换后也仍然保持原值, 只是数据的内部表示形式有所不同。
热心网友 时间:2022-05-27 11:15
double占8个字节(位)内存空间,最多可提供16位有效数字,小数点后默认保留6位。如全是整数,最多提供15位有效数字。测试代码如下,
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
printf("%lf\n",1234567012345678.7);//输出1234567012345680.000000
printf("%lf\n",(double)1234567012345678);//输出1234567012345680.000000
printf("%lf\n",12345670.1234567);//输出12345670.123457
return 0;
}
对于double类型数据,通常不能与0直接比较,而是通过其绝对值小于给定的容差值来判断是否满足精度需求,"float.h"头文件往往定义了基本数据类型能够表示的数据的最大值和最小值,比如,
#define DBL_MIN 2.2250738585072014e-308 //宏定义了double类型最小正数
热心网友 时间:2022-05-27 11:16
32位下:
double占用字节8,数值范围-1.7*10^-308~1.7*10^308。