设为首页 - 加入收藏
广告 1000x90
您的当前位置:黄大仙一二三份资料 > 精度 > 正文

c语言中什么是单精度型和双精度型???各举个例子。。。

来源:未知 编辑:admin 时间:2019-08-04

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  单精度型和双精度型的区别在于它们的精确程度不一样,也就是小数部分的有效位数不一样。

  单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。

  比如3.2384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果定义成double型,那么只会留下小数点后15位,也就是3.。

  计算机的数都是以二进制进行存储。无论是单精度浮点数还是双精度浮点数,在计算机上的存储都遵循IEEE 754规范,使用二进制科学计数法。

  二进制科学计数法包含三个部分:符号位,指数位和尾数部分。单精度数的符号位,指数位和尾数部分分别为1,8,23,而双精度为1,11,52。

  而单双精度中的精度就主要取决于尾数部分的位数。float的尾数尾数为23位,除去全部为0的情况以外,最小为2的-23次方,因此float小数部分只能精确到后面6位。类似的,double尾数位数为52,最小为2的-52次方,因此只能精确到小数点后15位。

  展开全部float(10%3)结果是1.000000即七位小数点后保留。

  双精度就是double类型,是8个字节的,可以表示的数字当然就更多,小数点后面的精度也越高

  float(10%3) double (10%3)结果有什么不同啊??当然有不同,虽然都是10%3=3,但是前者强制转换成float类型,是4个字节的,而后者强制转换成double类型,是8个字节的。4个字节和8个字节,区别大吧,精度当然差很多

  。。。。。。。。。。。追问float(10%3) double (10%3)结果有什么不同啊??追答

  你这样是看不出结果的,你在用10(注意这是个整形数)%3的时候,结果先是强制转换为整形,也就是1(这是个整形数),接着再用float或者double进行强制转换也不会有精度问题,所以这样是看不出来的,你可以这样查看单精度和双精度数:

  强制float和double输出小数点以后15位数据,你就可以看到这样的结果:

本文链接:http://vendor-lock.com/jingdu/592.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top