首页 > 编程知识 正文

c语言float类型输出保留几位数,c语言float类型输入

时间:2023-05-04 09:32:47 阅读:227038 作者:1006

摘录自CSDN论坛:点击打开链接

问题:

1)C语言规定了FLOAT类型,6~7位的有效数字,取值范围-3.4e-38至3.4e38。这个取值范围是从-0.00000000000000000000000000034至34000000000000000000000000000,那-1.0不在这个范围内,不能用float定义?

2)而且同为32位,float类型比long int类型(0~4294967295)的正值取值范围还大?
3)还有就是有关有效数字,C语言中的有效数字是如何定义的?是第一个不为0的数字开始计算,还是小数点后第一个不为零的数?
123456.789
0.123456789
123456789.0
这些有效数字都是如何计算的啊?


解答:

1)-0.00000000000000000000000000034至34000000000000000000000000000的范围包含了-1,因为在计算机里面负数是用补码表示的具体深入请自己看内存方面的章节

2)实型数据在内存中存在的时候是以指数形式储存的,一般前三个字节储存小数部分,后一个字节储存指数部分 

比如380在内在中的储存是小数部分:0.38,指数部分:3,即0.38*10^3(这个与科学计数法不同),前面的是小数,在转换为二进制数时有时会出现误差(具体自己看小数转二进制数部分,可能出现无限循环),所以实型数据的储存并不准确 

所以实型数据用一个字节来储存指数部分,只表示38位已经算是很小了,主要是位数多了,前面的小数部分不准确

3)有效数字是从第一个不为0的数开始



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。