您好、欢迎来到现金彩票网!
当前位置:秒速快三开奖 > 双精度 >

C语言如何输入双精度数据?

发布时间:2019-07-07 08:10 来源:未知 编辑:admin

  程序本身很简单,请问在上面的程序运行时输入两个数据:10,10,为什么得不到20.000000?

  大家没有理解问题的实质。结果是20.000000,其中的小数位数是由%f决定的,本人没有异议,在输出时无需改成%lf,更无需 用格式控制其输出的小数位数。

  关键问题是,scanf(%f,%f,&a,不能输入双精度数据吗?如果超过范围发生溢出正常,但输入10,10为什么就得不到20这个结果呢?

  大家可以把上述程序运行下,看得到的结果是怎么算出来的?展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  C语言用scanf()函数输入双精度数据时,采用的数据格式参数必须是%lf,如:

  double类型数据在内存中存储占8字节(64位),按IEEE754标准存储,格式为:1位符号位+11位指数位+52位小数位

  float类型数据在内存中存储占4字节(32位),按IEEE754标准存储,格式为:1位符号位+8位指数位+23位小数位

  当输入数据格式串为%f时,scanf()按float类型将输入的数据存储到内存地址中,这时,若再按double类型解释输出数据时,数据当然不是用户输入的内容了。

  double必须用%lf 输出的时候是会把double转换成float输出的 但是输入不能

  展开全部因为%f是float的占位符,double的占位符是%lf,所以程序要改成一下的形式就可以了

http://cellmall.net/shuangjingdu/336.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有