C语言—为什么用实型变量定义一个实数,其数值会改变?比如用float 定义a=123.45,为什么显示的是123.449997?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 05:54:51
C语言—为什么用实型变量定义一个实数,其数值会改变?比如用float定义a=123.45,为什么显示的是123.449997?C语言—为什么用实型变量定义一个实数,其数值会改变?比如用float定义a

C语言—为什么用实型变量定义一个实数,其数值会改变?比如用float 定义a=123.45,为什么显示的是123.449997?
C语言—为什么用实型变量定义一个实数,其数值会改变?
比如用float 定义a=123.45,为什么显示的是123.449997?

C语言—为什么用实型变量定义一个实数,其数值会改变?比如用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是个特例.当然,这个特例也不用认为去干扰,编译器会自动去识别.

C语言—为什么用实型变量定义一个实数,其数值会改变?比如用float 定义a=123.45,为什么显示的是123.449997? C语言中,如果a为实型变量,能否用if(a==0),为什么 如果定义函数,float*fun(),则函数fun的返回值是()A.一个实数B.一个指向实行变量的指针C.一个指向实行函数的指针D.一个实型函数的入口地址 c语言:若x 是单精度实型变量,表达式(x=10/4)的值是2.5.为什么不对? C语言语法的实型常量定义及其判断 我在看一本C语言的书时遇见了一个问题 3Q是这么写的:许多C编译系统将实型常量作为双精度处理.例如已定义一个实型变量f,有如下语句:f=2.45678*4523.65系统将2.45678和4523.65按双精度数据存储 在C语言中,#define PI 3.14115 是将PI定义为() A 符号常量 B字符常量 C实型常量 D变量 C语言:a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值.为什么可以赋值a=10? 什么事C语言实型常数 C语言定义变量问题,看到某些定义变量时在变量名前加一个*号,比如char *a; C语言整型变量和实型变量的区别和共同处个人感觉没什么区别啊! 以下选项中关于C语言常量的叙述错误的是(A) 经常被使用的变量可以定义成常量(B) 常量分为整型常量、实型常量、字符常量和字符串常量(C) 所谓常量,是指在程序运行过程中,其值不 C语言中,说明一个变量和定义一个变量有什么区别? C语言中,说明一个变量和定义一个变量有什么区别? 在C语言中123.345E-4是一个正确的实型数据 这个命题为什么错了?求解释 C语言为什么定义变量的时候要定义类型?为什么要这样? 设计人口普查程序,用一个变量表示江苏省的人口总数,这个变量的类型是( ).设计人口普查程序,用一个变量表示江苏省的人口总数,这个变量的类型是( ).A、整型 B、实型 C、双精 关于c语言判断是否为三角形的问题我是初学者,写了2个程序,都是求是否可以构成三角形的程序!一个是“用户输入3个数,看能否构成三角形”,变量都定义的实型!printf(请输入任意三个数:);sc