为什么双2.0的精度等级范围数存入2和实际2.000000001

本文所属图书&>&
本书以MATLAB 7.14版本的功能叙述为主,由浅入深地全面讲解MATLAB软件的相关知识,本书涉及面广,涵盖一般用户需要使用的各种功能,并详细介绍MATLAB常用工具箱的使用。本书按逻辑编排,自始至终采用实例描述;...&&
MATLAB提供了8种内置的整数类型。表2-1列出了它们各自的类型、能表示的数值范围和转换函数。
表2-1& MATLAB中的整数类型
整 数 类 型
数 值 范 围
转 换 函 数
有符号8位整数
无符号8位整数
有符号16位整数
?215~215?1
无符号16位整数
有符号32位整数
?231~231?1
无符号32位整数
有符号64位整数
?263~263?1
无符号64位整数
不同的整数类型所占用的位数不同,因此所能表示的数值范围不同,在实际应用中,应该根据需要的数据范围选择合适的整数类型。有符号整数类型使用一位来表示正负,因此表示的数据范围和相应的无符号整数类型不同。
由于MATLAB中数值的默认存储类型是双精度浮点类型,因此,必须通过表2-1中列出的转换函数将双精度浮点数值转换成指定的整数类型。
在转换中,MATLAB默认将待转换数值转换为最接近的整数,若小数部分正好为0.5,则MATLAB转换后的结果是绝对值较大的那个整数。另外,应用这些转换函数也可以将其他类型转换成指定的整数类型。
【例2-1】通过转换函数创建整数类型。
解:在命令窗口输入:
&&&&&&&& && x=105;y=105.49;z=105.5;
&&&&&&&& && xx=int16(x)&&&&%把double型变量x强制转换成int16型
&&&&&&&& xx =
&&&&&&&&&&&& 105
&&&&&&&& && yy=int32(y)
&&&&&&&& yy =
&&&&&&&&&&&& 105
&&&&&&&& && zz=int32(z)
&&&&&&&& zz =
&&&&&&&&&&&& 106
MATLAB中还有多种取整函数,可以用不同的策略把浮点小数转换成整数,如表2-2所示。
表2-2& MATLAB中的取整函数
 向最接近的整数取整,
 小数部分是0.5时向绝对值大的方向取整
 round(4.3)结果为4
 round(4.5)结果为5
 向0方向取整
 fix(4.3)结果为4
 fix(4.5)结果为4
 向不大于a的最接近的整数取整
 floor(4.3)结果为4
 floor(4.5)结果为4
 向不小于a的最接近的整数取整
 ceil(4.3)结果为5
 ceil(4.5)结果为5
数据类型参与的数学运算与MATLAB中默认的双精度浮点运算不同。当两种相同的整数类型进行运算时,结果仍然是这种整数类型;当一个整型数值与一个双精度浮点类型数值进行数学运算时,计算结果是这种整数类型,取整采用默认的四舍五入方式。
注意:两种不同的整数类型之间不能进行数学运算,除非提前进行强制转换。
【例2-2】整数类型数值参与的运算。
解:在命令窗口输入:
&&&&&&&& && x=uint32(367.2)*uint32(20.3)
&&&&&&&& x =
&&&&&&&&&&&&&&&& 7340
&&&&&&&& && y=uint32(24.321)*359.63
&&&&&&&& y =
&&&&&&&&&&&&&&&& 8631
&&&&&&&& && z=uint32(24.321)*uint16(359.63)
&&&&&&&& Error using& .*
&&&&&&&& Integers can only be combined with integers of the same class, or scalar doubles.
&&&&&&&&& && whos
&&&&&&&&&& Name&&&&& Size&&&&&&&&&&& Bytes& Class&&&& Attributes
&&&&&&&&&& x&&&&&&&& 1x1&&&&&&&&&&&&&&&& 4& uint32&&&&&&&&&&&&&
&&&&&&&&&& y&&&&&&&& 1x1&&&&&&&&&&&&&&&& 4& uint32
表2-1已经反映了不同的整数类型能够表示的数值范围不同。在数学运算中,当运算结果超出相应的整数类型能够表示的范围时,就会出现溢出错误,运算结果被置为该整数类型能够表示的最大值或最小值。
MATLAB提供了intwarning函数用于设置是否显示这种转换或计算过程中出现的溢出、非正常转换的错误,有兴趣的读者可以参考MATLAB的联机帮助。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
文章下载读书在一些编程语言(如Javascript)中,为什么浮点型数值运算时会产生误差? - 知乎139被浏览10090分享邀请回答zh.wikipedia.org/wiki/IEEE_754544 条评论分享收藏感谢收起468 条评论分享收藏感谢收起查看更多回答 上传我的文档
 下载
 收藏
毕业于医学院校,在医院工作,有相对丰富的护理经验
 下载此文档
正在努力加载中...
基础练习3编写重载函数min可分别求取2个整数3个整数2个双精度数和3个双精度.
下载积分:1500
内容提示:实验一C
基础练习3编写重载函数min可分别求取2个整数3个整数2个双精度数和3个双精度数的最小值。
文档格式:DOC|
浏览次数:113|
上传日期: 20:57:29|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
基础练习3编写重载函数min可分别求取2个整数
官方公共微信为什么0.1+0.2=0.0+2.2=3.0003? - 知乎61被浏览9545分享邀请回答613 条评论分享收藏感谢收起/questions/588004/is-floating-point-math-brokenFloating Point Arithmetic and Agent Based Models 81 条评论分享收藏感谢收起2 个回答被折叠()

我要回帖

更多关于 qubit 2.0 精度 的文章

 

随机推荐