Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB中将双精度转换为单精度而不会损失精度

我认为这是不可能的,因此我决定在这里询问一下,因为谷歌搜索没有返回任何暗示我可以这样做的结果。

特别是在阅读以下内容之后:

可以使用双精度来表示64位数字而不会损失精度

虽然我的数字可以保持在32位,如下例所示。

但是MATLAB中有什么方法可以将双精度值转换为单精度而不丢失信息吗?

例如在MATLAB中

> a = 103364148 a = 103364148 > single(a) ans = 103364144 也许还有另一种语言,例如Python?

我正在与只能使用GPUSingle的GPUMat合作,所以我试图找到一种方法来处理与MATLAB相同的对GPU而言是双重的东西。

谢谢,



回答:

单身人士最多可容纳2 ^ 24(16,777,216)个整数,而不会损失精度-符号和指数需要一些位。

换句话说,没有,您不可能使大于2 ^ 24的数字适合一个整数而不会出错(请注意,只要可以将它们写为数字的乘积,它就可以容纳更大的数字。较小的2 ^ 24和2的幂。

但是,您确定计算需要这种精度吗?只要您所有的整数都小于2 ^ 24,就可以了。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 06:55


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.