您好、欢迎来到现金彩票网!
当前位置:秒速快三开奖 > 双精度小数 >

Excel 求教:单精度浮点型与双精度浮点型的问题

发布时间:2019-07-03 07:36 来源:未知 编辑:admin

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

  求教,今天学习突然发现个问题,同样的代码,一个申明变量为单精度浮点型,一个申明变量为双精度浮点型,但是结果却不一样

  这样的话定义单精度浮点型不是没用,以后小数不是都要定义为双精度浮点型了吗?

  因为日常使用的运算结果,肯定都是四舍五入之后的结果,可以排除浮点误差的影响

  附件生成5万个随机小数(四舍五入到2位小数位),加上然后马上减去同一个整数

  对比计算前后的数值是否相等(数学上当然是绝对相等的,但是电脑的运算结果就不一定了。。。。。。)

  所以计算机存储小数的时候,必定只能存储所有小数的一部分,而无穷小数则必须截断

  不同的CPU,比方说Intel的跟AMD的,或者奔腾跟赛扬,在硬件上对于截断的位置是不一样的

  这也是为什么论坛经常有人说xx运算不正确,然后回帖的人说我的机器没事,其实就是CPU不同而已

  另一方面,不同的软件,内部计算的时候,也许用了不同的CPU硬件实现的数据类型,或者精度设置也不一样,

  编程,写公式要注意,假设 x,y 都是浮点数,er。。。。。。excel的每个小数单元格都是浮点数

  那么永远不要写 if x=y 这样的句子,因为很可能数学上相等的x和y,在计算机内部是不等的

  或者简单一点,用if round(x) = round(y) 来判断,这样最末一位的尾数浮点存储误差就不会影响整个数值了。

  幸运的是,整数和定点小数不会受影响,编程时应该优先考虑使用整数和定点小数类型

  另一方面,即使浮点小数可以完全表示我们要计算的数值,但是计算结果却也有可能产生误差

  以十进制为例,假设一个数值类型可以有6个十进制位置,那么定点类型无须记录小数点位置,可以有以下类型:

  整数类型,小数点位置就一定是个位后面,能够表达的最精确数字就是1,能够表达的范围是 000000 - 999999

  两位小数类型,小数点位置就一定是百分位,能够表达的最精确数字就是0.01,,能够表达的范围是 0000.00 - 9999.99

  浮点小数:小数点位置可以变动,并且需要额外的记录去描述这个变动的小数点位置。

  假设这里把其中一个位置用于记录小数点位置(可变范围 0-9),并且规定:

  小数点位置取5,表示精度是1,小数点在个位后面,这个数值类型有0个小数位,可以表示 00000 到 99999 的数 (注意:这里只有5位有效数字)

  小数点位置取6,表示精度是 0.1,小数点在十分位后面,这个数值类型有1个小数位,可以表示 0000.0 到 9999.9 的数

  小数点位置取9,表示精度是 0.0001,小数点在万分位后面,这个数值类型有4个小数位,可以表示 0.0000 到 9.9999 的数

  小数点位置取4,表示精度是 10,表示小数点在十位,这个数值类型可以表示 00000 x 10 到 999990 的数,精度是 10

  可见浮点小数通过可变的小数位置,使一个数值类型可以用一部分表示有效数字,另一部分表述每一单位有效数字的倍率

  从而灵活地表示很大范围的数值,代价是:由于用了一部分记录内容去记录小数点位置,所以有效数字的长度比定点小数要低。

  按上述规则,这两个都是合法的浮点数,可是它们的和 .01 却无法用同一个浮点数类型表示出来。

  要在Excel证明这一点就太简单了,因为excel的double类型浮点小数只有15个有效数字(即最多记录15个十进制数字)

  在C++中,单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当你需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是有用的。

  在foxpro中,单精度浮点型是为了提供兼容性,浮点数据类型在功能上等价于数值型。

  C语言中,双精度(double)型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

  Single 最多可以显示小数点后面7位 Double 最多可以显示小数点后面14位

http://cellmall.net/shuangjingduxiaoshu/315.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有