首页 > 编程知识 正文

c语语言char是什么,c是什么类型的语言

时间:2023-05-03 10:07:31 阅读:227030 作者:961

C语言浮点数标准

计算机中浮点数采用的是IEEE 754标准。浮点数分为单精度浮点数(32位)和双精度浮点数(64位)。浮点数的基本格式如下:

sign:符号位,0表示正,1表示负

exponent:阶码,浮点数的幂次。一般采用移码表示。

fraction:浮点数的小数部分

C语言float,double数据结构

以float为例

二进制小数十进制小数

2^-230.00000011920928955078125

2^-220.0000002384185791015625

2^-210.000000476837158203125

2^-200.00000095367431640625

2^-190.0000019073486328125

2^-180.000003814697265625

float的精度由尾数决定。2^23=8 388 608 有7位。是不是说明精度应该是7位?实际上float的二进制向十进制转换过程中不是一一对应的。是离散的。float最小的数是0.00000011920928955078125。

#include

int main(){

float f1=1.0000011f;

float f2=1.0000022f;

float f3=1.0000033f;

float f4=1.0000044f;

float f5=1.0000055f;

float f6=1.0000066f;

float f7=1.0000077f;

float f8=1.0000088f;

float f9=1.0000099f;

printf("%.7f %.25fn",f1,f1);

printf("%.7f %.25fn",f2,f2);

printf("%.7f %.25fn",f3,f3);

printf("%.7f %.25fn",f4,f4);

printf("%.7f %.25fn",f5,f5);

printf("%.7f %.25fn",f6,f6);

printf("%.7f %.25fn",f7,f7);

printf("%.7f %.25fn",f8,f8);

printf("%.7f %.25fn",f9,f9);

return 0;

}

输出>>

1.0000011 1.0000010728836060000000000

1.0000021 1.0000021457672119000000000

1.0000033 1.0000033378601074000000000

1.0000044 1.0000044107437134000000000

1.0000055 1.0000054836273193000000000

1.0000066 1.0000065565109253000000000

1.0000077 1.0000077486038208000000000

1.0000088 1.0000088214874268000000000

1.0000099 1.0000098943710327000000000

输出结果中可以得出: 小数点后第6位是准确的,但是到了第7位,某些数字发生的四舍五入。

1.0000066 1.0000065565109253000000000   1.0000099 1.0000098943710327000000000 都发生了四舍五入。所以说第7位有可能精确,也有可能不精确。

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