MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   在MATLAB中将双精度转换为单精度而不会损失精度 (https://www.labfans.com/bbs/showthread.php?t=24256)

poster 2019-12-10 20:48

在MATLAB中将双精度转换为单精度而不会损失精度
 
我认为这是不可能的,因此我决定在这里询问一下,因为谷歌搜索没有返回任何暗示我可以这样做的结果。

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

[URL="https://stackoverflow.com/questions/1789408/can-doubles-be-used-to-represent-a-64-bit-number-without-loss-of-precision"]可以使用双精度来表示64位数字而不会损失精度[/URL]

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

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

例如在MATLAB中

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

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

谢谢,



[B]回答:[/B]

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

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

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



[url=https://stackoverflow.com/questions/4513346]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:09

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