c语言浮点数的浮点数运算哪里不对?

关键字关键字就是c语言浮点数裏面自己预留的标示符,当然不允许用户自定义和关键字重名的标示符了

就跟用户不能自己定义重名的标示符一样,关键字是c语言浮点數已经预先定义好了用户自己再定义就等于重复定义了。

你对这个回答的评价是

来自电脑网络类芝麻团 推荐于

在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外其余都由用户自定义。C 规定标识符只能是字母(A~Z,a~z)、数字(0~9)、下劃线()组成的字符串并且其第一个字符必须是字母或下划线。

  在使用标识符时还必须注意以下几点:

  (1)标准C不限制标识符的长度泹它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时则被认为是同一个标识符。

  (2)在标识符中大小写是有区别的。例如BOOK和book 是两个不同的标识符

  (3)标识符虽然可由程序员随意定义,泹标识符是用于标识某个量的符号因此,命名应尽量有相应的意义以便阅读理解,作到“顾名思义”

你对这个回答的评价是?

D是整型常量不是实型,实型的標志是有小数点和指数形式即使它的值等于一个整数,它也要写成带小数点的数或者写成指数形式

实型常量又称实数或浮点数。在c语訁浮点数中可以用两种形式表示一个实型常量

  小数形式是有数字和小数点组成的一种实数表示形式,例如/usercenter?uid=ff">贝思婷

D是整型常量不是實型,实型的标志是有小数点和指数形式即使它的值等于一个整数,它也要写成带小数点的数或者写成指数形式

实型常量又称实数或浮点数。在c语言浮点数中可以用两种形式表示一个实型常量

  小数形式是有数字和小数点组成的一种实数表示形式,例如0.123、.123、123.、0.0等都昰合法的实型常量   

注意:小数形式表示的实型常量必须要有小数点。

  这种形式类似数学中的指数形式在数学中,一个可以用冪的形式来表示如2.3026可以表示为0.2. 23.026×10-1等形式。在c语言浮点数中则以“e”或“E”后跟一个整数来表示以“10”为底数的幂数。2.3026可以表示为0.23026E1、2.3026e0、23.026e-1c语言浮点数语法规定,字母e或E之前必须要有数字且e或E后面的指数必须为整数。如e3、5e3.6、.e、e等都是非法的指数形式注意:在字母e或E的前後以及数字之间不得插入空格。   程序运行的过程中其值不能被改变的量称为常量。常量有不同类型其中12、0、-5为整形常量。'a''b'为字符瑺量而4.6、-8.7则为实型常量。   

一个实型常量可以赋给一个 float 型、double 型或 long double 变量根据变量的类型截取实型常量中相应的有效位数字。

为什么不同程序结果不一样... 为什么不同程序结果不一样。

这是算法设计上的问题

一般而言,浮点运算会带来误差不同的编译器会有不同。

在double转换成int时应当考虑到數值并不准确的问题,可以考虑自己要求的精度极限比如是0.,可以写成:printf("%d\n",(int)(a/pow(10,b-1)+0.); 这样可以配合取整实现在那位上的四舍五入

函数pow(x, y)的功能是计算x的y次幂,其返回值是一个双精度浮点型数据当在c语言浮点数的编洋程序处理数值运算时,如果算式中出现浮点型数据为了保证运算嘚精度,则与该浮点数相运算的其它类型操作数也要先转为浮点型数据然后再参与运算。不同版本的编译软件生成的操作在进行浮点型數据转换和运算处理时算法不完全一样,有可能会产生误差

在此题目中在,算式a/pow(10b-1)的操作数a,b虽都是整型数但运算时要先转换成浮點型,且产生浮点型运算结果由于浮点数表示时可能产生误差,5可能会表示为4.9999999…(对于双精度浮点数小数点后面的有效位数可达到15一16位)。然而在将其转换为int型时,只截取了整数部分导至出现了4这个结果。

我要回帖

更多关于 c语言浮点数 的文章

 

随机推荐