C语言—为什么用实型变量定义一个实数,其数值会改变?
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/01 20:27:14
C语言—为什么用实型变量定义一个实数,其数值会改变?
比如用float 定义a=123.45,为什么显示的是123.449997?
比如用float 定义a=123.45,为什么显示的是123.449997?
因为在计算机中只有0和1,不能准确的表达出浮点数.在32为系统中,float是占用4个字节即32-bit,其中4字节中的最高位,用来指示浮点数的正负,当最高位是1时,为负数,最高位是0时,为正数.
浮点数据就是按下表的格式存储在4个字节中:
address+0 address+1 address+2 address+3
contents seee eeee emmm mmmm mmmm mmmm mmmm mmmm s:表示浮点数正负,1为负数,0为正数
e:指数加上127后的值的二进制数
m:24-bit的底数(只存储23-bit)
主意:这里有个特例,浮点数 为0时,指数和底数都为0,但此前的公式不成立.因为2的0次方为1,所以,0是个特例.当然,这个特例也不用认为去干扰,编译器会自动去识别.
浮点数据就是按下表的格式存储在4个字节中:
address+0 address+1 address+2 address+3
contents seee eeee emmm mmmm mmmm mmmm mmmm mmmm s:表示浮点数正负,1为负数,0为正数
e:指数加上127后的值的二进制数
m:24-bit的底数(只存储23-bit)
主意:这里有个特例,浮点数 为0时,指数和底数都为0,但此前的公式不成立.因为2的0次方为1,所以,0是个特例.当然,这个特例也不用认为去干扰,编译器会自动去识别.
C语言—为什么用实型变量定义一个实数,其数值会改变?
C语言中,如果a为实型变量,能否用if(a==0),为什么
matlab 如何定义一个变量X为实型连续变量 并且它的数值是从1到4
c语言:若x 是单精度实型变量,表达式(x=10/4)的值是2.5.为什么不对?
C语言定义变量的同时赋予数值和先定义后赋值有什么区别
C语言语法的实型常量定义及其判断
在C语言中,#define PI 3.14115 是将PI定义为() A 符号常量 B字符常量 C实型常量 D变量
C语言整型变量和实型变量的区别和共同处
变量 定义 说明 C语言
C语言如何定义一个有取值范围的整型变量?
C语言怎样定义一个变量的范围?
关于c语言:请问这个开头为什么要用static定义静态局部变量?