首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GMP发生前后,如何检测尾数精度溢出?

在GMP发生前后,如何检测尾数精度溢出?
EN

Stack Overflow用户
提问于 2009-01-23 12:00:27
回答 1查看 396关注 0票数 1

我想问的问题是尾数,而不是exponent,与我本周早些时候提出的关于"missing" digits on the sum of two negative floats.的问题有很大关系。

考虑到尾数具有可变的精度,如何判断尾数是否超出了尾数当前的精度设置?或者,从积极的一面来看,如何判断尾数精度溢出的可能性?

好样的,布鲁斯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-01-30 07:06:36

有一些数值方法可以看你是否会失去精度,但底线是你需要更好地理解精度的定义。

-4939600281397002.2812

-4939600281397002.2812000000000000

不是同一个号码。

当你加入

-2234.6016114467412141

-4939600281397002.2812

加在一起,正确的输出将只有20位的精度,因为更小的数字中的额外的12位数是毫无意义的,因为在较大的数字中的12位相同大小的数字是未知的。你可以暗示它们是零,但是如果是这样的话,你必须显式地声明它们为零,并且使用一个能够处理它的编号系统--计算机不善于理解隐含的意图。

至于检测什么时候会出现这个问题,您需要做的就是找出它们是否具有相同的指数(假设归一化尾数+/- 1或类似的二进制等价物)。如果它们没有标准化,那么您需要对它们进行规范化比较,或者使用稍微复杂一些的指数比较。

精确和精确不是一回事..。

-Adam

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/472652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档