浮点型类型转换.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
浮点型类型转换 第一页,共十六页,2022年,8月28日 浮点型 C 语言中除了整型外,另外一种数据类型就是浮点型,浮点型可以表示有小数部分的数据。浮点型包含三种数据类型,分别是单精度的float类型,双精度的double类型,和长双精度long double类型。 第二页,共十六页,2022年,8月28日 浮点型 (图表) 浮点型 float double long double 类型 位数 有效数字 取值范围 float 32 6~7 -1.4e-45~3.4e38 double 64 15~16 -4.9e-324~1.8e308 long double 128 18~19 —— 第三页,共十六页,2022年,8月28日 浮点型 参与运算的表达式中存在double类型,或者说,参与运算的表达式不是完全由整型组成的,在没有明确的类型转换标识的情况下(将在下一小节中讲解),表达式的数据类型就是double类型。例如: 1 + 1.5 + 1/*表达式运算结果是double类型*/ 1 + 1.5 /*表达式运算结果是double类型*/ 1 + 2.0 /*表达式运算结果是double类型*/ 1 + 2 /*表达式运算结果是int类型*/ 例子当的1.5,编译器默认它为双精度的double类型,精度高占据存储空间大,如果只希望以单精度float类型运行,可以在常量后添加字符‘f’或者‘F’都可以,比如1.5F,2.38F。同样的,如果希望数据是以精度更高的long double参与运算,可以在常量后添加字符‘l’或者‘L’都可以,比如1.51245L,2.38000L。建议使用大写‘L’,因为小写‘l‘容易和数字1混淆。 第四页,共十六页,2022年,8月28日 浮点型 再举几个运算的表达式的例子,如下所示: int i,j; float m; double x; i + j /*表达式运算结果是int类型*/ i + m /*表达式运算结果是float类型*/ i + m +x /*表达式运算结果是double类型*/ 第五页,共十六页,2022年,8月28日 浮点型 指数形式如下所示(‘e’或者‘E’都可以) 2.0e3 表示2000.0 1.23e-2 表示0.0123 .123e2 表示12.3 1.e-3 表示0.001 对于指数形式,有以下两点要求: ⑴ 字母e前面必须要有数字 ⑵ 字母e的后面必须是整数 浮点型 小数形式 指数形式 第六页,共十六页,2022年,8月28日 类型转换 1 隐式转换 2 显式转换 第七页,共十六页,2022年,8月28日 类型转换 计算过程中,如果遇到不同的数据类型参与运算该怎么办,是终止程序还是转换类型后继续运算。编译器采取第二种方式,如果能够转换成功,程序继续运算,如果转换失败,程序报错同时终止运行。数据类型有两种转换方式,分别隐式转换和显式转换。 第八页,共十六页,2022年,8月28日 隐式转换 C语言中设定了不同数据参与运算时的转换规则,编译器会在悄无声息中进行数据类型的转换,进而计算出最终结果,这就是隐式转换。 第九页,共十六页,2022年,8月28日 隐式转换 int i; i = 2 + 'A'; 先计算“=”号右边的表达式,字符型和整型混合运算,按照数据类型转换先后顺序,把字符型转换为int类型65,然后求和得67,最后把67赋值给变量i。 double d; d = 2 + 'A' + 1.5F; 先计算“=”号右边的表达式,字符型、整型和单精度float类型混合运算,因为有浮点型参与运算,“=”右边表达式的结果一定是double类型,按照数据类型转换顺序,把字符型转换为类型65.0,2转换为2.0,1.5F转换为1.5,最后把双精度浮点数68.5赋值给变量d。 第十页,共十六页,2022年,8月28日 隐式转换 上述情况都是有低精度类型向高精度类型的转换,如果逆向转换,可能会出现丢失数据的危险,编译器会以警告的形式给出提示。例如: int i; i = 1.2; 浮点数1.2舍弃小数位后,把整数部分1赋值给变量i。如果i=1.9,运算后变量i的值依然是1,而不是2。 注 意:把浮点数转换为整数,直接舍弃小数位。 第十一页,共十六页,2022年,8月28日 隐式转换 【范例-1】 整型和浮点型数据类型间的隐 式类型转换。 01 #include <stdio.h> 02 int main(void) 03 { 04 int i; 05 i=1+2.0*3+1.234+'c'-'A'; /*混合运算*/ 06 printf("%d\n",i); /*输出

文档评论(0)

lanlingling + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

认证主体凌**

1亿VIP精品文档

相关文档

相关课程推荐