如何检测尾数的精确的溢出在GMP、之前或之后发生了什么?
题
这个问题我 意思 要求有关的尾数,不 指数, ,并有很多要做的问题,我要求在本周早些时候关于 "失踪"数字的总和的两个负浮动。
鉴于有尾数变量精确,一个人如何告诉我们,如果一个具有溢出的尾数是目前的精确度设置?或者,从积极的一侧,一个如何可以告诉我们,如果尾数的精确的溢出是可能吗?
亲切的问候, 布鲁斯。
解决方案
有几个数值方法,看看你会失去精度,但底线是,你需要了解的精确定义更好。
-4939600281397002.2812
和
-4939600281397002.2812000000000000
是不一样的数目。
在添加
-2234.6016114467412141
和
-4939600281397002.2812
在一起,在正确输出将仅具有的精度20位的数字,因为在更小数量的附加12个位数是无意义的因为在较大数目的12个类似大小的数字是未知。你可以暗示他们是零,但如果是这样的话,那么你必须明确声明他们是这样,和使用的编号系统可以处理它 - 电脑并不擅长理解隐含的意图
至于当你将有这样的问题检测,所有需要做的是发现,如果他们具有相同的指数(假定归一化的尾数+/- 1或类似的二进制等同物)。如果它们不归,那么你就需要正常化他们进行比较,或者使用与指数稍微复杂的比较。
精度和准确度是不一样的东西......
- 亚当
不隶属于 StackOverflow