C语言%21.10f如何理解double类型范围

C语言中double类型怎么使用?_百度知道
C语言中double类型怎么使用?
#include &stdio.h&void main(){
a=1.; printf(&%f\n&,a);}怎么不行呢?为什么还是一样输出6位小数?
我有更好的答案
double是C语言中的双精度浮点数类型,用来表示实数。1 定义:double var_ 这样定义一个名字为var_name的double类型变量。2 赋值:var_name = 100.325;同其它类型的赋值语句一样,对var_name赋值用=运算符,右侧可以是任意表达式。3 输入:scanf(&%lf&, &var_name);%lf格式符号对应double,可以用来对double类型输入,以下输出类似。4 输出:printf(&%lf&, var_name);
采纳率:72%
来自团队:
a中存的已经是double了,只不过是没有输出来而已你可以用printf(&%.9f\n&,a);进行输出
本回答被提问者采纳
你可以用printf(&%.nf\n&,a);控制小数位数,n随你取值,只要在double精度范围内即可
可进行格式化输出啊,楼上回答过了!
其他1条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言中double是什么意思_百度知道
c语言中double是什么意思
我有更好的答案
double是C语言的一个关键字,代表双精度浮点型。结构:1.从存储结构和算法上来讲,double是64位的,所以double能存储更高的精度。2.目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示。3.由于通常C编译器默认浮点数是double型的,下面以double为例:&共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位:最高位63位是符号位,1表示该数为负,0正;62-52位,一共11位是指数位;51-0位,一共52位是尾数位。 按照IEEE浮点数表示法,下面将把double型浮点数38414.4转换为十六进制代码。把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理:0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……实际上这永远算不完,这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了(隐藏位技术:最高位的1不写入内存)。手工算到53位那么应该是:)=)科学记数法为:1.001……乘以2的15次方。指数为15。于是来看阶码,一共11位,可以表示范围是-1024 & ~ & 1023。因为指数可以为负,为了便于计算,规定都先加上1023,在这里,15+。二进制表示为:100 &
&。符号位:正— & 0 。合在一起(尾数二进制最高位的1不要): & & & &
& &&按字节倒序存储的十六进制数就是:55 & 55 & 55 & 55 & CD & C1 & E2 & 40
  double是C语言中的双精度浮点数类型,用来表示实数。  1 定义:  double var_  这样定义一个名字为var_name的double类型变量。  2 赋值:  var_name = 100.325;  同其它类型的赋值语句一样,对var_name赋值用=运算符,右侧可以是任意表达式。  3 输入:  scanf(&%lf&, &var_name);  %lf格式符号对应double,可以用来对double类型输入,以下输出类似。  4 输出:  printf(&%lf&, var_name);
本回答被提问者采纳
C语言中double是双精度浮点数的申明语句。
double 是 双精度浮点型定义类型- 有效数字16位
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言double型数据输出有问题,请高手指点。_百度知道
C语言double型数据输出有问题,请高手指点。
#include&stdio.h&void main(){
scanf(&%f&,&x); printf(&x=%f\n&,x);}为何结果如下图,float型就没问题
我有更好的答案
用%fdouble 用%lflong double 用%Lf scanf和printf都改
采纳率:61%
来自团队:
出现类型不匹配问题,double型的为%lf 而float为%f
所以才出现问题。#include&stdio.h&int main(){
scanf(&%f&,&x);
printf(&x=%f\n&,x);
将scanf(&%f&,&x);改为scanf(&%lf&,&x);
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言double answer是啥意思_百度知道
C语言double answer是啥意思
我有更好的答案
double在C语言中是一种数据类型,表示双精度浮点数answer在这里表示一个变量的名字double answer意思就是定义一个名字叫做answer的变量,并且这个变量的类型是double类型
采纳率:72%
来自团队:
定义一个double型变量,变量名为answer.
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言中什么时候用float定义,什么时候用double定义_百度知道
C语言中什么时候用float定义,什么时候用double定义
我有更好的答案
一般用float就可以满足要求,float和double都用来定义浮点数,也就是小数,两者就是有效位数不同,float为7-8位,double是15-16位,看你需要什么精确度的数了~
再不清楚的话,就随便找个数,分别以float和double格式输出,看看输出的数有什么区别就懂了~
保留两位小数之类的用float吗
建议不要考虑float变量的使用了。float有效数字6-7位,还不如int类型表示的数据有效性高double 有效数字15-16位float占四个字节,double占8字节,在表示浮点数(小数)时double精度要高的很多。
本回答被网友采纳
根据需要定义,一般反正定义double的比较多。float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位) 8bits(指数位) 23bits(尾数位)double:1bit(符号位) 11bits(指数位) 52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。常用数据类型有以下几种(32位机):char
1字节 short
4字节 long
4字节 long long
8字节 float
4字节 double
5字节 long double
两个精度是不一样的,一个 是单精度的,一个是双精度的。看你对精度的要求了。
其他1条回答
为您推荐:
其他类似问题
float的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 double类型比较大小 的文章

 

随机推荐